應(yīng)用性能直接影響到托管服務(wù)的成本,因此公司在開發(fā)應(yīng)用時需要格外注意應(yīng)用所使用的Web框架,初創(chuàng)公司尤其如此。此外,糟糕的應(yīng)用性能也會影響到用戶體驗,甚至?xí)虼耸艿较嚓P(guān)搜索引擎的降級處罰。在選擇框架時,又有許多因素需要考量,但原始性能無疑是其中最容易測評的。不同的框架性能差異極大,即使你充分利用了硬件的性能,錯誤的框架依然可能帶來十倍的性能損耗,雖然不是每個人都會遇到如此極端的情況,但在某些情況下確實如此,因此你有必要了解各框架之間的性能差異。
TechEmpower 測試有源代碼,硬件配置全部公開的測試,而且很多框架是作者或資深愛好者提交的,他們各自肯定知道該如何優(yōu)化才最好,應(yīng)該比較靠譜,因為這些結(jié)果都是可重現(xiàn)的,誰覺得不服可以自己跑跑看,源代碼和需求頁面提供了每種測試的執(zhí)行細(xì)節(jié)以及其它相關(guān)信息,各種Web框架性能對比頁面提供了更多有關(guān)如何進(jìn)行測試的細(xì)節(jié)與測試基準(zhǔn)的概況。TechEmpower 主要測試的目的是將目前流行的Web開發(fā)框架從各個角度來進(jìn)行測試,這些測試的場景主要是針對這些Web執(zhí)行框架的基本任務(wù),比如數(shù)據(jù)庫訪問、JSON序列化和服務(wù)端模板的組合等等場景。整體得分還是有借鑒作用的。當(dāng)然這種測試主要的作用還是提升士氣用的。Techempower網(wǎng)站已經(jīng)做了13輪的常用web框架的測試,它提供了2種硬件環(huán)境(硬件平臺包括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測試,內(nèi)容包括單請求數(shù)據(jù)庫訪問測試、多請求數(shù)據(jù)庫訪問測試、Fortunes測試、JSON序列化測試;得出了一系列的web框架的性能基準(zhǔn)。 對于架構(gòu)師而言,這是一個很好的評估選擇web框架的參考資料。
我們看看各個web框架的性能,以TPS為指標(biāo)排序(每秒返回的response多的在前面,性能越好),所有測試都在Linux中運(yùn)行。在對比中,我們看到ASP.NET Core取得優(yōu)異的成績,具體6個回合的對比請移步TechEmpower查看:
-
響應(yīng)返回”Hello, world!”的JSON字符串
測試結(jié)果見:http://www.techempower.com/benchmarks/#section=data-r13&hw=peak&test=json -
從數(shù)據(jù)庫讀取一行記錄并返回
測試結(jié)果見:http://www.techempower.com/benchmarks/#section=data-r13&hw=peak&test=db -
從數(shù)據(jù)庫讀取多行記錄并返回
測試結(jié)果見:http://www.techempower.com/benchmarks/#section=data-r13&hw=peak&test=query -
從數(shù)據(jù)庫讀取整個表記錄并返回
測試結(jié)果見:http://www.techempower.com/benchmarks/#section=data-r13&hw=peak&test=fortune -
修改數(shù)據(jù)庫記錄并返回
測試結(jié)果見:http://www.techempower.com/benchmarks/#section=data-r13&hw=peak&test=update -
響應(yīng)返回”Hello, world!”的純文本