之前一文《c++的性能, c#的產能?!魚和熊掌可以兼得,.NET NATIVE初窺》 獲得很多朋友支持和鼓勵,也更讓我堅定做這項技術的推廣者,希望能讓更多的朋友了解這項技術,於是先從官方信息的翻譯開始做起。
此系列系小九的學堂原創翻譯,翻譯自微軟官方開發向導,一共分為六個主題。本文是總覽及向導。之后會將目錄分塊持續進行翻譯,並會加上鏈接。
[小九的學堂,致力於以平凡的語言描述不平凡的技術。如要轉載,請注明來源:小九的學堂。cnblogs.com/xfuture]
目錄
1. .NET Native安裝和配置(.NET Native Setup and Configuration)
6. 將Windows應用商店應用遷移到.Net Native (Migrating Your Windows Store App to .NET Native)
7. .NET Native一般問題解答 Q&A (.NET Native General Troubleshooting)
原文:Compiling Apps with .NET Native
使用.Net Native編譯應用
小貼士 |
|---|
| 這個主題依賴於預發行的.net native開發者預覽版。下載地址: Microsoft Connect website. 友情提示需要注冊. |
.net native是構建和部署windows store apps(windows應用商店應用)時可使用的預編譯技術(注:據build2014大會信息,將來會逐漸支持桌面應用)。它可以把在.net framework下寫出的托管代碼編譯成機器碼。
通常情況下, 在.NET環境下開發的應用程序會被編譯成中間語言(IL)。在運行時,即時編譯(JIT)會將中間代碼編譯成機器碼。與此不同的是,.NET Native則直接將windows應用商店程序編譯為機器碼。
對於開發者意味着:
-
你的應用將擁有機器碼直接運行的卓越性能。
-
你可以繼續使用C#來進行開發。
-
你可以繼續獲得.NET Framework框架帶來的所有優勢:強大的類庫,自動的內存管理機制和垃圾回收,異常處理機制,等等。
對於使用者意味着:
-
運行更快更流暢
-
持續保持更快的啟動(注:啟動時間減少60%)
-
更低的部署和更新消耗
-
內存優化(注:內存消耗減少20%)
.NET Native 涉及了多種編譯成機器碼的方法。它轉換了.NET Framework對於應用的構建和執行機制。尤其是:
-
在預編譯的階段,將所需要的.NET Framework的部分靜態鏈接到應用程序,這使用應用程序可以在應用程序自身包含的.NET Framework庫下, 編譯器可以進行全面分析並提供更高性能的運行狀態。這種帶來的好處是,即使.NET Framework更新了,應用依然可以保持更快的速度來啟動。
-
.NET Native 通過靜態的預編譯優化了應用的運行時,因此可以提供更卓越的性能。與此同時,它保留了核心反射功能,提供給開發者優秀的產能。
-
.NET Native 使用了和C++編譯器相同的后端, 對靜態編譯的場景進行了優化。
.NET Native 能夠帶給在.NET Framework和CLR環境開發的人員C++的性能優勢,因為它使用了和C++底層相同或者相似的工具,具體如下表所示:
| .NET Native |
C++ |
|
|---|---|---|
| 庫 |
The .NET Framework + Windows Runtime |
Win32 + Windows Runtime |
| 編譯器 |
UTC 優化編譯器(UTC optimizing compiler) |
UTC 優化編譯器(UTC optimizing compiler) |
| 部署 |
隨時可以運行的二進制機器碼 |
隨時可以運行的二進制機器碼(匯編) |
| 運行 |
MRT.dll (Minimal CLR Runtime) |
CRT.dll (C Runtime) |
Windows 8.1 系統下Windows應用商店應用發行中,可以將在app包里(.appx files)的.NET Native編譯成的機器碼源文件上傳至Windows應用商店。

小貼士