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