VS2015 Update 2中如何提升.NET Native 代碼

責任編輯:editor004

作者: Jeff Martin

2016-05-03 11:46:58

摘自:INFOQ

一個有利于所有 NET Native開發(fā)者的變化是 NET Native項目編譯器后端的改變。隨著時間的推移, NET團隊計劃在 NET Native項目中使用更多C++編譯器提供的優(yōu)化方案。要使用這些新的編譯器功能,你需要下載最新的UWP App Development Tools(1 3 1版本 for Windows 10 SDK 10 0 10586),并從NuGet下載最新的 NET Core UWP包。

Microsoft持續(xù)發(fā)表Visual Studio 2015的新特性與功能。在最新的稱為Update 2的變更中也不例外,對.NET Native編譯器進行了幾項更新。你可能記得,當.NET native作為編譯目標時,Windows應用程序(這里指針對Windows 10的UWP應用程序)直接被編譯為本地代碼,而不產(chǎn)生默認的中間語言(IL)。這樣做有幾個優(yōu)點,最主要的是開發(fā)者可以繼續(xù)用C#或是Visual Basic寫應用程序,而與傳統(tǒng)的基于IL的應用程序相比,用戶可得到更快的執(zhí)行速度,更短的啟動時間并占有更少的內(nèi)存。

可以預見,編譯.NET為本地代碼有許多缺點。Microsoft準備了一個很長的列表,其中列出了他們認為的.NET Native與常規(guī)的Windows應用程序之間的“行為變化”。本文不會詳細說明這些變化,但值得注意的是其中涉及泛型反射的變化。正如.NET團隊的Stacey Haffner和Matthew Whilden在一篇博文中寫道的,“當編譯本地代碼時,動態(tài)性問題將會成為一個挑戰(zhàn),因為所有的代碼都必須在編譯時識別和編譯。”

由于使用靜態(tài)分析來確定所有泛型實例非常復雜,團隊引入了Universal Shared Generics (UGS)?,F(xiàn)在當可以用特定類型的代碼表示時,會產(chǎn)生優(yōu)化后的代碼,而當不可表示時則會使用UGS。

另外一個有利于所有.NET Native開發(fā)者的變化是.NET Native項目編譯器后端的改變。最新發(fā)布的1.3.1版本的.NET Native工具使用與Microsoft C++編譯器相同的程序內(nèi)聯(lián)引擎。隨著時間的推移,.NET團隊計劃在.NET Native項目中使用更多C++編譯器提供的優(yōu)化方案。 
要使用這些新的編譯器功能,你需要下載最新的UWP App Development Tools(1.3.1版本 for Windows 10 SDK 10.0.10586),并從NuGet下載最新的.NET Core UWP包。它們需要安裝在Update 2可用的Visual Studio 2015之上。

查看英文原文:How VS2015 Update 2 Improves .NET Native Code

鏈接已復制,快去分享吧

企業(yè)網(wǎng)版權所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號