成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++的性能, C#的產能?!魚和熊掌可以兼得,.NET NATIVE初窺

開發 后端
.Net當初的出現是因為Java讓人了解到計算機發展的今天,語言的產能重要性是高于性能的。于是微軟便出了CLR和.Net。JIT(運行時編譯)雖然消耗了性能,卻大大增加了產能。但是ObjectC又告訴了大家在平板和智能手機內存和存儲受限的情況下,機器碼編譯性能是多么重要,而且也省電,這也很重要不是嗎。

對于微軟開發者來說,每次BUILD大會都是值得期待的。這次也是驚喜滿滿,除了大眾矚目的WP8.1的發布還有一項會令開發者興奮的技術出現:.NET NATIVE。下面就來詳細了解一下其為何物。

[小九的學堂,致力于以平凡的語言描述不平凡的技術。如要轉載,請注明來源:小九的學堂。cnblogs.com/xfuture]

  [[112260]]

.Net當初的出現是因為Java讓人了解到計算機發展的今天,語言的產能重要性是高于性能的。于是微軟便出了CLR和.Net。JIT(運行時編譯)雖然消耗了性能,卻大大增加了產能。但是ObjectC又告訴了大家在平板和智能手機內存和存儲受限的情況下,機器碼編譯性能是多么重要,而且也省電,這也很重要不是嗎。

微軟W8出現是平板時代應運而生的,于是便出現了開發時的產能,運行時的性能的合體:.NET NATIVE。

.NET NATIVE目的是為了生產上的流水線產出的手工產品,易于開發,運行時精致。

.NET NATIVE之前被稱為Project N, 它可以把C#語言編譯成機器碼native code,使之可以像C++一樣運行。其實這樣講比較籠統,具體是在NATIVE里微軟重寫了.NET Framework,將程序所需要的framework里的元素加進去而其他的則不用,生成可以運行的機器碼,最終實現運行時本地機器碼,不用動態編譯,節省了內存和空間。

這其中有個誤區,很多人認為是.NET NATIVE把C#編譯成了C++,其實并不是,C++編譯器后端接受IL作為輸入,生成MDIL。

.NET NATIVE解決了很多.NET的問題,比如.NET運行時計算,是消耗內存和開銷更多電量,.NET NATIVE編譯時只有用到的才會靜態鏈接,其他部分就不要了,內存中放入的只有框架的一部分,所以內存占用很少,電量消耗也少,很適合平板等內存相比較小的設備。

.Net native也實現了云編譯,開發者提供.NET代碼,而消費者安裝的是自己設備可以使用的機器碼.

.Net native解決了.NET 版本管理的問題。開發中最常遇到這個東西.NET 低版本不支持,或者是要支持一些低版本機器,導致我們開發的環境一直是以低版本.net來進行的。.net native編譯成機器碼就不存在這種問題了。個人認為這個是商業價值所在

據官網,用native編譯的windows商店程序, 啟動速度加快60%,占用內存減少將近20%。

現在.net native支持windows store apps,暫時不支持其他的一些.net桌面程序,WPF等。但我們可以期待以后會出現全盤都支持的時代。私人認為WPF是難點,畢竟是用了GPU。

安卓也有類似的,4.4出現了ART。希望有ART開發經驗的來一起研究進行對比。http://www.pcpop.com/doc/0/967/967006.shtml

個人認為出現的有點略晚,XP已經下架了。現在基本都是.net 3.5及以上了。還是以觀后效吧。

運行時的截圖

安裝:首先需要update2.大概3G(比2013還要大)。安裝OK后。安裝.net native 下面有鏈接。

.net native preview支持windowsstore 所以建立一個windowsstore的app:

然后右鍵點擊windowsstore項目,點擊 enable .net native

會彈出一個說明界面:

之后點擊Run static native analysis 會出現This application is compatible with .net native code generation。

位置在release folder下:

#p#

下面有不使用.net native后release folder大小:

使用.net native后。拿掉 說明.net native網頁文件夾后 可以部署的文件大小:

 明顯編譯后還是小很多的。第一次使用,可能對其中文件和一些部署相關還不夠了解。有錯希望指正!。

之后會出更詳細的評測。希望大家持續關注謝謝!

假如還有問題,這個鏈接也許會解決您的疑惑:

http://msdn.microsoft.com/zh-cn/vstudio/dn642499.aspx

是否支持 F# 或 VB 或我最喜歡的語言?

此預覽版僅支持 C# 代碼,因為它是大多數應用商店應用使用的 .NET 語言。但在我們拓寬工作重點之后,毫無疑問,我們會支持所有 .NET 語言。

此產品是僅與性能有關,還是也允許生成針對 Win32/64 本機編譯并且不需要在目標計算機上安裝 .NET Framework 的 C# 代碼(舉例來說)?

沒錯:.NET Native 不僅僅與性能有關,而且與工作效率和一致的設備體驗有關。利用 .NET Native,您能夠使用托管語言編寫代碼并且能夠像往常一樣上載 MSIL 包。但是,應用將作為完全自包含的本機編譯代碼部署在最終用戶設備上(當 .NET Native 進入生產時),并且不依賴目標設備/計算機上的 .NET Framework。如您所知,.NET 應用程序的范圍很廣。因此,我們對完整的 .NET Framework 也進行了重大投入(例如,我們剛剛發布了  RyuJIT 的 CTP)。

設計此產品時考慮了哪些方案?

我們考慮過的方案是用于設備的應用商店應用 - 使開發人員能夠保持 .NET 和 MSIL 的工作效率優勢并且能夠將 MSIL 包上載到應用商店,為最終用戶提供性能類似的本機代碼 (C++)(與 Windows Phone 8 類似,在云中進行編譯)。

.NET Native 是否將取代 .NET Micro Framework 以及 C#/.NET 是否將完全可供小型設備使用?

.NET Native 當前的重點是 Windows 應用商店應用。Micro Framework 由 Windows Embedded 團隊交付,.NET 團隊與他們一起攜手為客戶提供最佳服務。

開發人員預覽版是否適用于創建 Windows Phone 應用和庫?

可以創建與 .NET Native 一起使用的通用類庫。在此預覽版中,僅 Windows 應用商店應用可使用 .NET Native 進行創建。正在實現使用 .NET Native 開發 Windows Phone 應用。

此產品能否提高 C# 開發人員開發高度圖形化的應用和/或游戲的體驗?

可以。.NET Native 編譯器與 Microsoft C++ 優化器共享部分基本代碼。

服務器/桌面應用是否將受益于 .NET Native 和/或云中的編譯器?

桌面應用是我們策略中的非常重要的部分。最初,我們的重心是 Windows 應用商店應用與 .NET Native。從長遠來看,我們將繼續改進所有 .NET 應用程序的本機編譯。

如何進行鏈接?框架代碼是否將編譯到應用程序中?這將如何影響包/二進制文件大小?

是的,框架代碼將編譯到應用程序中。對于包大小,由于大多數應用商店應用都有大量多媒體,因此差異不明顯。 因此,代碼大小確實會發生變化;但是,僅會將應用使用的框架部分鏈接到應用中。最終結果是,使用 .NET Native 編譯的二進制文件將與執行 NGEN 的二進制文件處在相同的大小范圍中。 我們仍將研究可進一步減少大小差異的策略。

使用 .NET Native 編譯比使用 MSIL 編譯慢。為什么?

常規應用開發使用 Visual Studio 中的標準 MSIL/JIT 開發體驗。只有在將應用部署到設備才會調用 .NET Native 編譯器,在大多數開發過程完成之后,重心將轉移到應用的優化上。此時,編譯時間與使用鏈接時間代碼生成優化的 C++ 的差不多。

P/Invoke 有什么變化?是否會將它們優化為標準 DLL 調用?

即使對二進制文件進行本機編譯,但我們保留了托管代碼類型安全性(以及垃圾回收)和完整 C# 異常模型的好處。利用 .NET Native,我們還極大地優化了互操作路徑 - 因此,盡管 P/Invoke 不會優化為標準 DLL 調用,但開銷極低,以便執行 GC 同步和任何必需的封送。

有什么限制?此產品是否支持開放的泛型和反射?

.NET Native 將在進入生產時支持目標平臺支持的所有功能。由于這是預覽版,很多功能正在開發中,因此目前有一些限制。話雖如此,此預覽版中支持開放的泛型和反射(是的,甚至支持靜態編譯!)。在此預覽版中,編譯器具有試圖弄清運行時需要的泛型實例化和元數據的內置啟發機制。因此,大量的應用有望直接運行,而不必簡化源代碼來獲得編譯器的好處。

如何修補這些應用或為這些應用提供服務?

應用的服務模式繼續保持不變。對于框架,.NET 的最新模式是自動提供庫更新。我們將繼續探索選項;我們期待聽到您的建議和意見。

如果刪除了從未用過的方法,是否有某種方式表明某個方法(或整個類)已使用,即使從未直接調用過?

有;在此預覽版中,支持開發人員聲明某個方法(或類型)已使用,即使未直接調用(請查看運行時指令文檔)。

下面附上一些.net native相關的鏈接:

http://social.msdn.microsoft.com/Forums/en-US/home?forum=dotnetnative

http://msdn.microsoft.com/en-US/vstudio/dotnetnative

http://blogs.msdn.com/b/dotnet/archive/2014/04/02/announcing-net-native-preview.aspx

http://channel9.msdn.com/Shows/Going+Deep/Inside-NET-Native

如果喜歡,請關注和推薦。謝謝光臨小九的學堂。

原文鏈接:http://www.cnblogs.com/xfuture/p/3684762.html

責任編輯:林師授 來源: 博客園
相關推薦

2014-04-17 10:37:43

C++.NET Native

2011-11-09 17:10:19

Windows 8系統

2020-11-13 09:32:58

JPA Mybatis數據庫

2017-04-06 22:33:43

with磁盤數據

2020-12-14 11:40:27

Next.js SSRReact

2010-02-05 14:32:18

Ubuntu Linu

2017-05-17 16:10:03

PC

2009-03-23 16:13:49

網絡拓撲運維管理摩卡軟件

2010-12-09 13:29:57

云計算

2018-09-05 14:46:16

筆記本硬件配置

2013-05-23 09:37:53

云提供商云代理商SaaS

2011-03-03 18:54:34

2009-09-04 17:34:11

C#CC++

2021-11-01 10:40:15

機器學習人工智能計算機

2009-08-06 16:36:20

研究C#和.Net

2009-08-19 10:09:21

C#和C++

2009-08-13 14:52:21

.NET性能誤區C#和VB.NET

2011-05-18 18:05:47

C#C++

2011-05-18 17:56:38

C#C++
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 激情福利视频 | 久久久男人的天堂 | 亚洲精品欧美一区二区三区 | 殴美黄色录像 | 午夜精品久久久久久久久久久久 | 日韩精品免费视频 | 嫩草伊人 | 久久国产欧美一区二区三区精品 | 91久久精品一区二区三区 | 欧洲一区在线观看 | 色吧色综合 | 麻豆精品一区二区三区在线观看 | 美女久久 | 日韩一区二区在线视频 | 欧美亚洲综合久久 | av片免费| 国产特级毛片aaaaaa | www久久国产 | 亚洲天堂中文字幕 | 99久9 | 免费国产一区 | 91视在线国内在线播放酒店 | 天天干天天爱天天爽 | 国产一区二区三区免费观看在线 | 色综合久 | 亚洲国产欧美日韩 | 国产精品无码永久免费888 | 成人性视频免费网站 | 亚洲一区二区三区视频 | 一区二区免费 | 欧美黄视频 | 欧美国产日韩精品 | 一区二区三区欧美大片 | a精品视频 | 久久精品久久久久久 | 在线观看av网站永久 | 成人免费观看视频 | 日韩中文字幕视频在线观看 | 日本久久网站 | 欧美日韩精品久久久免费观看 | 国产馆 |