国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

8 種提升 ASP.NET Web API 性能的方法

2019-11-02 15:49:50
字體:
來源:轉載
供稿:網友

   ASP.NET Web API 是非常棒的技術。編寫 Web API 十分容易,以致于很多開發者沒有在應用程序結構設計上花時間來獲得很好的執行性能。

  在本文中,我將介紹8項提高 ASP.NET Web API 性能的技術。

  1) 使用最快的 JSON 序列化工具

  JSON 的序列化對整個 ASP.NET Web API 的性能有著關鍵性的影響。 在我的一個項目里,我從 JSON.NET 序列化工具轉到了 ServiceStack.Text 有一年半了。

  我測量過,Web API 的性能提升了20%左右。 我強烈建議你去嘗試一下這個序列化工具。這里有一些最近的流行序列化工具性能的比較數據。

SerializerPerformanceGraf

  更新: 似乎It seams that StackOverflow 使用了他們號稱迄今為止最快的 JSON 序列化工具 Jil 。 一測試數據可參見他們的GitHub page Jil serializer.

  2)從DataReader中手動串行化JSON

  我已經在我的項目中使用過這種方法,并獲得了在性能上的福利。

  你可以手動地從DataReader創建JSON字符串并避免不必要的對象創建,這樣你就不用從DataReader中取值并寫入對象,再從這些對象中取值并使用JSON Serializer產生JSON.

  使用StringBuilder產生JSON,并在結尾處返回StringContent作為在We

琪琪布電影網[www.aikan.tv/special/qiqibudianyingwang/]
bAPI中響應的內容。

  var response = Request.CreateResponse(HttpStatusCode.OK); response.Content = new StringContent(jsonResult, Encoding.UTF8, "application/json"); return response;

  你可以在 Rick Strahl’s blog查看更多方法

  3)盡可能使用其它協議格式 (protocol buffer, message pack)

  如果你能給在你的工程中使用其它消息格式,如 Protocol Buffers 或MessagePack 而不是使用JSON這種協議格式。

  你將能給獲取到巨大的性能優勢,不僅是因為Protocol Buffers 的序列化是非常快,而且比JSON在返回的結果格式化要更快。

  4) 實現壓縮

  在你的ASP.NET Web API中使用GZIP 或 Deflate 。

  對于減少響應包的大小和響應速度,壓縮是一種簡單而有效的方式。

  這是一個非常有必要使用的功能,你可以查看更多關于壓縮的文章在我的博客 ASP.NET Web API GZip compression ActionFilter with 8 lines of code.

  5) 使用caching

  在Web API方法中使用output caching意義深遠.舉例來說,如果大量用戶訪問同一個一天只改變一次的響應(response)內容。

  如果你想實現手動緩存,例如把用戶口令緩存到內存,請參看我的博文 Simple way to implement caching in ASP.NET Web API.

  6) 盡可能地使用典型的 ADO.NET

  手動編寫的ADO.NET仍然是從數據庫中取值的最快捷的方式。如果Web API的性能對你來說真的很重要,那么就不要使用ORMs.

  你可以看到最流行的ORM之間的性能比較.

ORMMapper
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桃园市| 增城市| 静乐县| 宁国市| 长岛县| 襄汾县| 当涂县| 美姑县| 长治市| 珠海市| 比如县| 达拉特旗| 郓城县| 麦盖提县| 长沙县| 法库县| 临城县| 余姚市| 林甸县| 都匀市| 高安市| 尉犁县| 滁州市| 大悟县| 鄂温| 于都县| 和顺县| 湛江市| 本溪| 加查县| 富锦市| 织金县| 陇川县| 浪卡子县| 从化市| 玉门市| 巴林右旗| 泾阳县| 新绛县| 交口县| 新邵县|