預覽 .NET Native 編譯技術

在上個月 //Build/ 2014 開發大會上,微軟推出了 .NET Native 編譯技術的第一個預覽版本,而隨著 Visual Studio 2013 Update 2 正式版本推出後,也推出了第二個預覽版本,有興趣研究的開發人員可以從這裡下載。目前提供了 Windows 市集應用程式 (Windows Store App) 在 x64 及 ARM 架構(x86 架構還在調校中)下的 native 編譯技術,在正式版時會支援所有 .NET 開發的程式。

很多開發人員都知道,以 .NET 開發的應用程式,在編譯後都會產生中介代碼(CIL, Common Intermediate Language),然後由 CLR (Common Language Runtime) 這個虛擬器來執行,在執行階段才轉換成 native code 來執行。而這項 .NET Native 編譯技術(採用 Microsoft VC++ 的後端優化編譯器),就是像其它的編譯語言(如:C/C++等)一樣,預先就編譯出 native code,而且除了原本的 .NET Framework 之外,也會編譯及優化程式中連結的函式庫,如此一來程式可以不必透過 CLR 而直接執行,開發人員便可在保有 .NET 技術的開發能量下,又能夠在欲部署的平台上取得更好的效能、更小的記憶體使用量(memory footprint)。

舉例來說,像是使用 ARM 架構平台的 Surface RT 或是 Surface 2,若 Windows 市集應用程式使用這項 .NET native 編譯技術,選擇為 ARM 平台編譯及優化,那麼這個應用程式將可以在 Surface RT/Surface 2 上面有更好的執行效能。

想要深入瞭解 .NET Natvie 編譯技術,可以參考這段影片:

如何開始

首先,你必須使用Visual Studio 2013,並且下載升級Update 2的版本,完成後再安裝 .NET Natvie的編譯器。由於現在(開發者預覽版)僅支援Windows市集應用程式,所以下面就以Windows市集應用程式(C# 或 VB.net 皆可)做示範。

首先,在Windows市集應用程式的專案下,開啟編譯的組態管理員,將原本(在 Debug 或 Release 下)的平台,從 Any CPU 更改為 x64ARM(因為 x86 還在調校中)。


開啟組態管理員


指定目標平台為ARM或x64

設定完成後,再到專案上按右鍵,選擇「Enable for .NET Native」的功能,Visual Studio便會開始進行編譯:


使用 .NET Native 編譯技術

如果順利編譯完成,就可以看到類似以下的畫面:

 

這樣一來,這個 Windows 市集應用程式就已經為 ARM 架構平台預先編譯並且優化了,未來正式版本推出後,將可以套用到所有的 .NET 應用程式,可以讓您在已知的運行平台上得到更多的效能。