WCF與ASP.NET Core效能比較

weixin_33807284發表於2018-04-12
\

看新聞很累?看技術新聞更累?試試下載InfoQ手機客戶端,每天上下班路上聽新聞,有趣還有料!

\
\\

微軟花了大量的時間和精力來開發ASP.NET Core。結果,這個開放的平臺提供了許多首次出現的新特性,而且從廣大開發社群的開放參與中收穫頗多。人們通常會認為,ASP.NET Core比像Windows Communication Foundation(WCF)這樣的舊技術效能更好。近期看來,情況似乎不是這樣,讓我們深入地瞭解一下。

\\

近日,開發者Erik Heemskerk發表了一篇文章,介紹他對ASP.NET Core與WCF進行的深入比較。在他的試驗中,他使用每種技術編寫了一個簡單的專案,“啟動一個本地Web伺服器,測量從請求建立、傳送、反序列化到響應生成、返回、反序列化這整個過程所用的時間”。

\\

出乎他的意料,當負載是一個簡單的GUID時,WCF比對等的ASP.NET Core專案快大約三分之一。Heemskerk認為,這可能是由於WCF序列化成XML,而ASP.NET Core使用JSON,所以他強制ASP.NET Core序列化成XML。這提升了效能,但WCF仍然要快許多。Heemskerk又嘗試了另外一種方法,他把負載增加到一個更符合現實物件大小的規模,並在ASP.NET Core專案中使用了MessagePack。總算,ASP.NET比WCF稍微快了點。

\\

但是,這還沒完。開發者Josh Bartley後來檢查了Heemskerk的專案,看看是否還能做些其他的修改來改進ASP.NET的結果。他的分析表明,也許ASP.NET的基準測試過程和WCF的基準測試過程並不完全相同。

\\

因此,ASP.NET Core並不是效能的倒退。如果最初效能未達到預期,可能需要做些分析來優化效能。更重要的是,在嘗試改進效能時,務必要找對進行基準測試的地方,以便可以修改適當的程式碼段。

\\

檢視英文原文Comparing WCF Performance to ASP.NET Core

相關文章