當前位置:
首頁 > 知識 > 微軟為.NET Core 2.1提升了性能及部署選項

微軟為.NET Core 2.1提升了性能及部署選項

微軟正式發布了面向所有平台的.NET Core 2.1。微軟計劃長期支持這個版本,但據來自微軟的Rich Lander介紹,官方還沒有確定。Lander表示,在完成之前,該版本新增了許多小的更新。一旦正式確定,這個版本將獲得為期三年的LTS。Lander指出,對於所有開發中的.NET Core應用程序,編程人員應該現在就著手切換到2.1。

切換到2.1有什麼好處?除了很快就可以確定的LTS外,2.1還提供了Ubuntu 18.04,、Alpine Linux和ARM32支持。它還添加了自包含應用程序發布,並改進了性能。

在考慮性能提升時應該注意,這裡的性能提升是指,與.NET Core 2.0相比,2.1的增量構建性能的提升。同時,2.1版本還增加了一個全新的類SocketsHttpHandler,這是HttpClient的C#實現。SocketsHttpHandler比之前的實現要快許多,並且提供了一致的跨平台行為。

來自微軟的Stephen Toub詳細介紹了2.1版本的運行時性能提升。其中有些提升來自新增的System.Span及相關類型。.NET Core 2.1使用的Just-In-Time(JIT)編譯器也做了一些修改。值得一提的補充是增加了利用分層編譯的能力。在這個場景下,JIT編譯器會儘快生成最小優化的可執行文件。完成之後,JIT編譯器會觀測程序運行,對使用頻繁的方法進行更為優化的二次編譯。其理論是,如果可以的話,為什麼要對可能並不怎麼使用的方法進行優化?這一行為並不是默認激活的,但可以通過下面的環境變數來激活:

COMPlus_TieredCompilation="1"

性能提升不限於代碼優化;.NET Core團隊引入了一種新的壓縮標準,減少數據傳輸。微軟使用了一種基於谷歌提供的C代碼的實現,向.NET Core 2.1添加了Brotli壓縮支持。由於Brotli得到了許多Web瀏覽器和Web伺服器的廣泛支持,所以.NET Core提供對這項技術的支持是非常有用的。

最後,.NET Core 2.1支持自包含部署(SCD)。這讓開發者生成的應用程序的Release構建中可以包含所有執行時需要的.NET Core運行時文件。然而,與平常的構建相比,這會佔用更多的磁碟空間,因此,它允許開發人員指定應用程序運行的平台和使用的.NET Core版本。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux資訊速推 的精彩文章:

存儲,對比私有雲和公有雲的不同
2018 LC3 中國在京召開 眾人齊聚享開源盛宴

TAG:Linux資訊速推 |