.NET 6相比.NET 5效能提升高達40% - alexyakunin
下載克隆https://github.com/servicetitan/Stl.Fusion並鍵入以下內容來執行這個測試:
dotnet build -c Release Run-PerformanceTest.cmd net6.0 Run-PerformanceTest.cmd net5.0 Run-PerformanceTest.cmd netcoreapp3.1 |
頂部測試集與底部測試集完全相同,唯一的區別是它依賴於 Fusion 的計算服務而不是常規服務,即它極大地受益於 Fusion 的透明快取邏輯。
所以就引擎蓋下發生的事情而言,
- 頂級測試主要計算快取鍵,雜湊它們,獲取非同步鎖,並執行ConcurrentDictionary查詢
- 底部測試實際上執行 SQL 命令——主要是SELECT-s 獲取單行。
很明顯,.NET 6 中的 PGO 在第一種情況下大放異彩,因此程式內快取肯定會為 .NET 6 帶來更多優勢。
至於第二類測試,對於速度主要受外部服務(PostgreSQL 或 SQL Server)限制的程式碼,即使約 5% 的加速也令人印象深刻。InMemory EF Core 提供程式(也是一個 .NET 庫)的基準測試通過顯示約 14-15% 的加速來證明這一點。
要點是:啟用 PGO 的 .NET 6 可能會為您帶來:
- 緊密迴圈和快取友好邏輯的速度提高 30–40%
- +15% 對於不依賴於網路和 IO 的平均程式碼
- +5% 對於主要依賴於網路和 IO 的典型 Web 服務。
很明顯 .NET 6 確實是迄今為止最快的 .NET,非常感謝所有使這成為可能的人!
相關文章
- .NET平臺系列22:.NET Core/.NET5/.NET6 對比 .NET FrameworkFramework
- .NET平臺系列26:在 Windows 上安裝 .NET Core/.NET5/.NET6Windows
- .NET平臺系列27:在 Linux 上安裝 .NET Core/.NET5/.NET6Linux
- .NET平臺系列23:.NET Core/.NET5/.NET6 和 .NET Framework 的選擇建議Framework
- .NET Core/.NET5/.NET6 開源專案彙總13:模板引擎
- ASP.NET Core 6 的效能改進ASP.NET
- .NET 6 預覽版 5 釋出
- .NET平臺系列17 .NET5中的ARM64效能
- .NET Core/.NET5/.NET6 開源專案彙總10:實用工具
- .net相比java,有哪些特點呢?Java
- .NET Core/.NET5/.NET6 開源專案彙總3:工作流元件元件
- .NET Core/.NET5/.NET6 開源專案彙總4:CMS、Blog專案
- .NET Core/.NET5/.NET6 開源專案彙總1:常用必備元件元件
- .NET Core/.NET5/.NET6 開源專案彙總7:電商專案
- .NET Core/.NET5/.NET6 開源專案彙總5:許可權管理系統專案
- .NET平臺系列15 .NET5的吊炸天效能改進
- 【翻譯】.NET 5中的效能改進
- .Net Core(.Net6)建立grpcRPC
- .NET Core/.NET5/.NET6 開源專案彙總2:任務排程元件元件
- .NET Core(.NET6)中gRPC使用RPC
- 【譯】ASP.NET Core 6 中的效能改進ASP.NET
- 使用招商銀行雲直連服務提現(.Net6)
- .NET MAUI 效能提升UI
- .NET跨平臺實踐:.NetCore、.Net5/6 Linux守護程式設計NetCoreLinux程式設計
- .NET 6 in Ubuntu 22.04Ubuntu
- .net 5+ 知新:【2】 .Net Framework 、.Net 、 .NET Standard的概念與區別Framework
- ASP.NET Core - .NET 6 的入口檔案ASP.NET
- .Net IDE智慧提示漢化(.Net6、AspNetCore)IDENetCore
- .Net效能調優-MemoryPool
- .Net效能調優-ArrayPool
- 一起談.NET技術,40條ASP.NET開發TipASP.NET
- .NET平臺系列5 .NET Core 簡介
- .NET 6 如期而至
- .NET 5簡介
- 使用 .NET 升級助手將.NET Framework應用遷移到.NET 5Framework
- .NET Core(.NET6)中gRPC註冊到ConsulRPC
- .NET 生態系統的蛻變之 .NET 6
- .NET 平臺系列6 .NET Core 發展歷程