微軟 .NET 5.0 Preview 5 發(fā)布:改進 RyuJIT編譯器
.NET 5.0 Preview 5 發(fā)布了,此版本帶來了一些小的新特性和性能改進,目前需要使用 Visual Studio 2019 16.7 才能體驗到 .NET 5.0,macOS 的尚不支持 .NET 5.0。
RyuJIT改進
RyuJIT編譯器有一些改進,包括:
新的,可移植并且更快的尾調(diào)用 helper 實現(xiàn)。
ARM64 硬件 intrinsics 實現(xiàn)
實現(xiàn) ASIMD Extract Insert ExtractVector64 ExtractVector128
實現(xiàn) ASIMD 擴大、縮小、飽和 intrinsics
添加 VectorTableList 和 TableVectorExtension intrinsics
支持 arm64 intrinsic CreateScalarUnsafe()
Vector64.Create() 與 Vector128.Create() 的 ARM64 intrinsic 支持
通過 arm64 intrinsics 優(yōu)化 BitOperations.PopCount()
在影響正則表達式編譯的情況下提高了 JIT速度
使用新的硬件 intrinsics BSF/BSR 改善了英特爾架構(gòu)性能
實現(xiàn) Vector{Size}.AllBitsSet
本地導(dǎo)出
已經(jīng)為本地二進制文件啟用了導(dǎo)出功能,該功能的構(gòu)建塊是托管對 UnmanagedCallersOnlyAttribute 的 API 的支持。
此功能是創(chuàng)建更高級別體驗的基礎(chǔ),它使開發(fā)者能夠:
暴露自定義的本地出口。
不需要像 COM 這樣的高級互操作技術(shù)。
跨平臺工作。
將 System.DirectoryServices.Protocols 擴展到 Linux 和 macOS
添加了對 System.DirectoryServices.Protocols 的跨平臺支持,System.DirectoryServices.Protocols 是比 System.DirectoryServices 更底層的 API ,并且可以啟用更多方案。System.DirectoryServices 包含僅 Windows 的概念 / 實現(xiàn),因此制作跨平臺并不是一個顯而易見的選擇。這兩個 API 集都支持控制和與 LDAP 或 Active Directory 之類的目錄服務(wù)服務(wù)器進行交互。
此外,此版本還預(yù)告了 .NET 6 將刪除內(nèi)置的 WinRT(Windows Runtime) 支持。.NET Core 3.0 中添加了對 WinRT interop 的支持,這是添加對 Windows 桌面客戶端框架(Windows Forms 和 WPF)支持的一部分。不過開發(fā)團隊將在 .NET 5.0 中提供 C#/WinRT 工具鏈替換內(nèi)置的 WinRT 支持。完整發(fā)布公告查看:
https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-5