我們看看各個web框架的性能,以TPS為指標排序(每秒返回的response多的在前面,性能越好),所有測試都在Linux中運行。在對比中,我們看到ASP.NET Core取得優異的成績,具體6個回合的對比請移步TechEmpower查看 ...
應用性能直接影響到托管服務的成本,因此公司在開發應用時需要格外註意應用所使用的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字元串
測試結果見:http://www.techempower.com/benchmarks/#section=data-r13&hw=peak&test=json - 從資料庫讀取一行記錄並返回
測試結果見:http://www.techempower.com/benchmarks/#section=data-r13&hw=peak&test=db - 從資料庫讀取多行記錄並返回
測試結果見:http://www.techempower.com/benchmarks/#section=data-r13&hw=peak&test=query - 從資料庫讀取整個表記錄並返回
測試結果見:http://www.techempower.com/benchmarks/#section=data-r13&hw=peak&test=fortune - 修改資料庫記錄並返回
測試結果見:http://www.techempower.com/benchmarks/#section=data-r13&hw=peak&test=update - 響應返回”Hello, world!”的純文本
測試結果見:http://www.techempower.com/benchmarks/#section=data-r13&hw=peak&test=plaintext
下麵是返回純文本Plaintext的性能基準:
第六回 Azure D3v2 Instance PlainText 訪問測試(峰值)
第六回 專用硬體 PlainText 訪問測試(峰值)
從開發者的角度來講,.NET Core在吸收了Mono的優點以後,以一種全新的姿態面向世人,這個轉變是值得期待的,而在這個轉變中涌現出的新技術、新特性等等,也是我們真正該去關註的東西。相比11輪的asp.net mvc在Mono平臺上的表現,ASP.NET Core每秒1822366個請求,這是一個大約提高859倍的提升。