微软 wordpress google Windows linux Android shell java 云计算 编程 apache 程序员 nginx Ubuntu centos Firefox php Python 开源 mysql

.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提供對這項技術的支持是非常有用的。

延伸阅读

评论