我即将编写高性能ASP.NET Json API> 1000请求/秒。我的所有逻辑和处理都是在IHttpHandler中完成的。我通过秒表类测量,处理程序在大约0,1 - 0,5毫秒内完成一个请求。
但似乎IIS和/或其他HTTPHandlers(模块?)正在带走很多性能。我能以某种方式衡量吗?在配置为获得最佳性能时,IIS中的请求会产生多少开销?
是否会删除所有这些HTTPHandler帮助,还是有其他技巧可以加快速度?除了Session之外,我不需要太多的ASP.NET功能集(如果能够显着提升性能,甚至可以解决这个问题)。
答案 0 :(得分:11)
测量Web服务器的性能并非易事。需要考虑的一些事项:
注意1:了解您的工具。 ASP.NET在自己的线程中运行每个请求。线程交换比进程交换更快,但仍需要时间。如果其他处理程序因为它们在请求链中而花费时间,那么禁用它们是有益的。
注意2:stackoverflow的原始侧面目标之一是在ASP.NET中创建一个站点,该站点在max 2服务器上具有出色的性能并且可以处理>每小时1Mln访客。他们设法做到了。我相信他们在上面写了一些博文,但我不记得它们在哪里。
答案 1 :(得分:5)
这是一个非常好的问题。一旦你进入单毫秒响应时间范围,我就注意到了这一点,ASP.NET开销开始变得明显。我可以证实你的观察。
我成功完成的工作是找出哪些HttpModule已注册(使用IIS管理器)并禁用所有这些我可能会被删除的内容。标准的ASP.NET管道配置了许多模块和功能。
如果你需要最终的性能,你当然可以使用一个小的HTTP服务器库,并以这种方式摆脱几乎所有的开销。这将非常快。