天天看點

TechEmpower 關于 ASP.NET Core 的性能測試

應用性能直接影響到托管服務的成本,是以公司在開發應用時需要格外注意應用所使用的web架構,初創公司尤其如此。此外,糟糕的應用性能也會影響到使用者體驗,甚至會是以受到相關搜尋引擎的降級處罰。在選擇架構時,又有許多因素需要考量,但原始性能無疑是其中最容易測評的。不同的架構性能差異極大,即使你充分利用了硬體的性能,錯誤的架構依然可能帶來十倍的性能損耗,雖然不是每個人都會遇到如此極端的情況,但在某些情況下确實如此,是以你有必要了解各架構之間的性能差異。

techempower 測試有源代碼,硬體配置全部公開的測試,而且很多架構是作者或資深愛好者送出的,他們各自肯定知道該如何優化才最好,應該比較靠譜,因為這些結果都是可重制的,誰覺得不服可以自己跑跑看,源代碼和需求頁面提供了每種測試的執行細節以及其它相關資訊,各種web架構性能對比頁面提供了更多有關如何進行測試的細節與測試基準的概況。techempower 主要測試的目的是将目前流行的web開發架構從各個角度來進行測試,這些測試的場景主要是針對這些web執行架構的基本任務,比如資料庫通路、json序列化和服務端模闆的組合等等場景。整體得分還是有借鑒作用的。當然這種測試主要的作用還是提升士氣用的。techempower網站已經做了13輪的常用web架構的測試,它提供了2種硬體環境(硬體平台包括azure d3v2 instance 和專用硬體【dell r910 application server (4x 10-core e7-4850 cpus) 和 a dell r420 database server (2x 4-core e5-2406 cpus)】),幾種測試case測試,内容包括單請求資料庫通路測試、多請求資料庫通路測試、fortunes測試、json序列化測試;得出了一系列的web架構的性能基準。 對于架構師而言,這是一個很好的評估選擇web架構的參考資料。

我們看看各個web架構的性能,以tps為名額排序(每秒傳回的response多的在前面,性能越好),所有測試都在linux中運作。在對比中,我們看到asp.net core取得優異的成績,具體6個回合的對比請移步techempower檢視:

響應傳回”hello, world!”的json字元串

從資料庫讀取一行記錄并傳回

從資料庫讀取多行記錄并傳回

從資料庫讀取整個表記錄并傳回

修改資料庫記錄并傳回

響應傳回”hello, world!”的純文字

下面是傳回純文字plaintext的性能基準:

TechEmpower 關于 ASP.NET Core 的性能測試

第六回 azure d3v2 instance plaintext 通路測試(峰值)

TechEmpower 關于 ASP.NET Core 的性能測試

第六回 專用硬體 plaintext 通路測試(峰值)

從開發者的角度來講,.net core在吸收了mono的優點以後,以一種全新的姿态面向世人,這個轉變是值得期待的,而在這個轉變中湧現出的新技術、新特性等等,也是我們真正該去關注的東西。相比11輪的asp.net mvc在mono平台上的表現,asp.net core每秒1822366個請求,這是一個大約提高859倍的提升。