广告
返回顶部
首页 > 资讯 > 精选 >提升 ASP.NET Web API 性能的方法具体都有哪些
  • 385
分享到

提升 ASP.NET Web API 性能的方法具体都有哪些

2023-06-17 07:06:16 385人浏览 薄情痞子
摘要

这期内容当中小编将会给大家带来有关提升 asp.net WEB api 性能的方法具体都有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。ASP.net Web API 是非常棒的技术。编写 Web A

这期内容当中小编将会给大家带来有关提升 asp.net WEB api 性能的方法具体都有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

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%左右。 我强烈建议你去尝试一下这个序列化工具。这里有一些最近的流行序列化工具性能的比较数据。

提升 ASP.NET Web API 性能的方法具体都有哪些

来源: theburningmonk

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

2)从DataReader中手动串行化JSON

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

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

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

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之间的性能比较.

提升 ASP.NET Web API 性能的方法具体都有哪些

Dapper 和hand-written fetch code 很快,果不其然,所有的ORM都比这三种慢.

带有resultset缓存的LLBLGen 很快,但它要重新遍历一遍resultset并重新再内存中实例化对象。

7)在 Web API 中实现异步方法

使用异步的 Web API 服务大幅增加 Web API 对于Http 请求的处理数量。

实现是简单的,只需使用 async  的关键字和 将你方法的返回值类型改为 Task 即可。

[HttpGet]    public async Task OperationAsync()    {         await Task.Delay(2000);    }

8) 返回多个结果集和集合的组合

减少传输的次数不仅多数据库有好处,对于 Web API同样 ,你才有可能使用结果集的功能。

也就是说你可以从DataReader去提取多个结果集 参见以下演示代码:

// read the first resultset   var reader = command.ExecuteReader();       // read the data from that resultset   while (reader.Read())   {       suppliers.Add(PopulateSupplierFromIDataReader( reader ));   }       // read the next resultset   reader.NextResult();       // read the data from that second resultset   while (reader.Read())   {       products.Add(PopulateProductFromIDataReader( reader ));   }

你可以在一个 Web API 的一次响应中返回多个对象,试着将你的返回的多个对象进行组合后返回 如下:

public class AggregateResult  {       public long MaxId { get; set; }       public List<Folder> Folders{ get; set; }       public List<User>  Users{ get; set; }  }

这种方式将减少对你的WEB API的HTTP请求。

感谢你读读这篇文章。

上述就是小编为大家分享的提升 ASP.NET Web API 性能的方法具体都有哪些了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。

--结束END--

本文标题: 提升 ASP.NET Web API 性能的方法具体都有哪些

本文链接: https://www.lsjlt.com/news/287800.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 提升 ASP.NET Web API 性能的方法具体都有哪些
    这期内容当中小编将会给大家带来有关提升 ASP.NET Web API 性能的方法具体都有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。ASP.NET Web API 是非常棒的技术。编写 Web A...
    99+
    2023-06-17
  • Python性能提升的方法有哪些
    本篇内容介绍了“Python性能提升的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!时序分析优化之前,首先要找到是哪部分代码拖慢了...
    99+
    2023-06-16
  • 提升MySQL性能的方法有哪些
    这篇文章主要介绍“提升MySQL性能的方法有哪些”,在日常操作中,相信很多人在提升MySQL性能的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”提升MySQL性能的...
    99+
    2022-10-18
  • 提高ASP.NET首页性能的方法有哪些
    本篇内容介绍了“提高ASP.NET首页性能的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言本文是我对ASP.NET页面载入速度...
    99+
    2023-06-17
  • 排序算法的性能提升方法有哪些
    本篇内容介绍了“排序算法的性能提升方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!冒泡排序这是最简...
    99+
    2022-10-19
  • 提升Web开发性能的技巧有哪些
    本篇内容介绍了“提升Web开发性能的技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、采用反向代...
    99+
    2022-10-19
  • 提高mysql性能的方法有哪些
    本篇内容主要讲解“提高mysql性能的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“提高mysql性能的方法有哪些”吧!一、问题的提出 在应用系统开发...
    99+
    2022-10-18
  • Web前端性能的优化方法有哪些
    这篇文章主要讲解了“Web前端性能的优化方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Web前端性能的优化方法有哪些”吧!  Web前端性能优化的结果直接影响到用户体验,而用户体验...
    99+
    2023-06-04
  • WEB前端性能优化的方法有哪些
    这篇文章将为大家详细讲解有关WEB前端性能优化的方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。减少请求数量合并如果不进行文件合并,有如下3个隐患1、文件与文件之...
    99+
    2022-10-19
  • 提高电脑性能的方法有哪些
    提高电脑性能的方法有以下几种:1. 清理磁盘空间:删除无用的文件和程序,清理浏览器缓存等,以释放磁盘空间。2. 使用优化软件:可以使...
    99+
    2023-09-06
    电脑
  • 10个提升web应用程序10倍性能的技巧有哪些
    这篇文章将为大家详细讲解有关10个提升web应用程序10倍性能的技巧有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。提高Web应用程序性能比以往任何时候都更加重要。在线经济活动的份额正在...
    99+
    2023-06-16
  • 提高java程序性能的方法有哪些
    尽量指定类的final修饰符,带有final修饰符的类是不可派生的在Java核心API中,有许多应用final的例子,例如java.lang.String。为String类指定final防止了人们覆盖length()方法。另外,如果指定一个...
    99+
    2021-12-12
    提高 java 程序 性能
  • 快速提高web数据分析能力的方法有哪些
    这篇文章主要介绍“快速提高web数据分析能力的方法有哪些”,在日常操作中,相信很多人在快速提高web数据分析能力的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”快速...
    99+
    2022-10-19
  • 美国网站服务器提升安全性的方法有哪些
    美国网站服务器提升安全性的方法有:1、及时更新服务器操作系统以及安全补丁,避免出现系统漏洞被攻击;2、给美国网站服务器配置防火墙,提高服务器防御能力;3、给美国网站服务器安装安全软件,扫描系统潜在安全隐患并及时处理;4、给美国网站服务器配置...
    99+
    2022-10-11
  • 用分表存储提高性能的方法有哪些
    本篇内容主要讲解“用分表存储提高性能的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“用分表存储提高性能的方法有哪些”吧!首先,童家旺介绍了他认为的什么...
    99+
    2022-10-18
  • 提高香港服务器的性能有哪些方法
    提高香港服务器的性能有:1、使用内存数据库储存数据,从而提高香港服务器的性能;2、使用RDD将数据保存在内存中提高香港服务器性能。具体内容如下:使用内存数据库内存数据库,其实就是将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速...
    99+
    2022-10-06
  • javascript中提高应用程序性能的方法有哪些
    本篇文章给大家分享的是有关javascript中提高应用程序性能的方法有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。像任何其他编程语言一...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作