TechEmpower Web 框架效能第19輪測試結果正式釋出,ASP.NET Core在主流框架中拔得頭籌

張善友發表於2020-05-30

TechEmpower 第19輪程式語言框架效能排行榜2020年5月28日正式釋出,詳見官方部落格:https://www.techempower.com/blog/2020/05/28/framework-benchmarks-round-19/,TechEmpower基準測試有許多場景(也稱為測試型別),此次評測多了一個綜合評分選項,把擁有完整測試覆蓋的框架現在將具有綜合分數,這反映了測試專案型別的總體效能得分:JSON serialization, Single-query, Multi-query, Updates, Fortunes 和 Plaintext. 。對於每一輪,我們使每個測試型別的結果規範化,然後為每個測試型別應用主觀權重(例如,Fortunes的權重比 Plaintext 高,因為Fortunes 是一種更現實的測試型別)。asp.net core排第6名,asp.net 排名倒數第二,第103名, 微軟從倒數一路追趕到第一。

image

表上字首T標籤表示精選的主流程式語言

  • 第1名 C++的drogon 9676分
  • 第2名 Rust的actix 9064分
  • 第6名 C#的ASP.NET Core 5659分
  • 第29名 Go的Chi 2229分
  • 第34名 Java的Spring 1867分
  • 第73名 Nodejs的Express 821分
  • 第94名 PHP的laravel 348分
  • 第103名 C#的老框架ASP.NET(倒數第2),43分

在主流的程式語言中ASP.NET Core 獲得了排名三的好成績,本次的測試的是ASP.NET Core 3.1, .NET 5 在生產任務排程方面還在繼續優化,相信未來效能還會繼續提升,具體可以關注:https://aka.ms/aspnet/benchmarks

在當今無伺服器和容器的時代,很高興看到行業競爭並在冷啟動和記憶體消耗方面進行艱難的測試,PlaintText單項排名很好的體現了這一項:

image

Fortunes測試型別是最有趣的,因為它包括使用物件關係對映器(ORM)和資料庫。這是Web應用程式/服務中的常見用例。以前版本的ASP.NET Core在這種情況下表現不佳。由於堆疊和PostgreSQL驅動程式中的優化,ASP.NET Core 2.1得到了顯著改進, 3.1 版本又 提升到了27萬。 其他方案不太代表典型的應用程式。他們強調堆疊的特定方面。如果它們與您的用例緊密匹配,它們可能會很有趣。對於框架開發人員,他們幫助識別進一步優化堆疊的機會。 例如,考慮Plaintext方案。此方案涉及客戶端傳送16個請求背靠背(流水線),伺服器知道響應,而無需執行I / O操作或計算。這不代表典型的請求,但它是解析HTTP請求的良好壓力測試。 每個實現都有一個類。例如,ASP.NET Core Plaintext具有platform, micro和full 實現。full 的實現是使用MVC中介軟體。Micro實現在管道級實現,platform實現直接建立在Kestrel之上。雖然Platform 類提供了引擎功能強大的概念,但它不是用於應用程式開發人員程式設計的API。 基準測試結果包括Latency選項卡。一些實現每秒實現非常多的請求,但是以相當大的延遲成本。

相關文章