• 软件开发精英班
  • Java企业订制班
  • UI设计零基础班
  • Java精英就业班
  • Web前端开发精英班
  • 2-20
  • 2-20
  • 2-20
  • 2-27
  • 2-25
bangchu_4008868558

全国免费咨询电话

400-8868-558
bangchu_4008868558
QQ在线咨询
bangchu_4008868558 bangchu_4008868558
bangchu_4008868558
bangchu_4008868558
bangchu_4008868558
客服不在时,
请发送短信"姓名+课程+需了解的问题”
至15980830540我们将第一时间与您取得联系

     在本文中,厦门邦初将介绍8项提高 ASP.NET Web API 性能的技术。

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

    JSON 的序列化对整个 ASP.NET Web API 的性能有着关键性的影响。 在邦初的一个项目里,从 JSON.NET 序列化工具转到了 ServiceStack.Text 有一年半了。

    厦门邦初技术中心测量过,Web API 的性能提升了20%左右。 厦门邦初建议你去尝试一下这个序列化工具。这里有一些最近的流行序列化工具性能的比较数据。

    更新: 似乎StackOverflow 使用了他们号称迄今为止最快的 JSON 序列化工具 Jil。 一测试数据可参见他们的GitHub page Jil serializer.

2)从DataReader中手动串行化JSON

    厦门邦初已经在邦初的项目中使用过这种方法,并获得了在性能上的福利。

    你可以手动地从DataReader创建JSON字符串并避免不必要的对象创建,这样你就不用从DataReader中取值并写入对象,再从这些对象中取值并使用JSON Serializer产生JSON.

使用StringBuilder产生JSON,并在结尾处返回StringContent作为在WebAPI中响应的内容。

1. var response = Request.CreateResponse(HttpStatusCode.OK);  

2. response.Content = new StringContent(jsonResult, Encoding.UTF8, "application/json");  

3. return response; 

3)尽可能使用其它协议格式 (protocol buffer, message pack)

    如果你能给在你的工程中使用其它消息格式,如 Protocol Buffers 或MessagePack   而不是使用JSON这种协议格式。你将能给获取到巨大的性能优势,不仅是因为Protocol Buffers 的序列化是非常快,而且比JSON在返回的结果格式化要更快。

4) 实现压缩

    在你的ASP.NET Web API中使用GZIP 或 Deflate 。对于减少响应包的大小和响应速度,压缩是一种简单而有效的方式。.

5) 使用caching

    在Web API方法中使用output caching意义深远.举例来说,如果大量用户访问同一个一天只改变一次的响应(response)内容。

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

    手动编写的ADO.NET仍然是从数据库中取值的最快捷的方式。如果Web API的性能对你来说真的很重要,那么就不要使用ORMs.(邦初技术中心 )

温馨提示

  • > 如果你不懂电脑,还在苦苦自学电脑知识,却不见成效;
  • > 如果你大专本科毕业后仍找不到好的工作,还是不停的换着工作,收入朝不保夕;
  • > 如果你是应往届高中生且对学历教育不"来电",不想白白浪费几年时间在"非主流"的大中专学校;
  • > 如果你在软件行业呆了三五年,仍然是一个菜鸟,工资停滞不前;
  • > 也许你有想通过自己的努力学习,改变自己的境遇,那么请不要再瞎想了,请在这里多停留几分钟吧,把你所有的疑惑迷 茫写下来,把问题交给厦门邦初,我们会有针对性的给你回复,希望我们的小小建议,能够为你拨云见日;

厦门邦初QQ咨询 厦门邦初在线咨询 厦门邦初网上报名

全国免费咨询电话 : 400-8868-558
报名电话 : 0592-2617998  2617999
地址 : 厦门市软件园二期望海路65号一楼
备案信息 : 闽ICP备09025137号
乘L27、28、29、47、55、92、94、98、127至软件园站
38、39、88、948、949、128、751、752至软件园东门站
18、102、105、129、653、656、754至软件园西门站