我使用HttpHandler
来实现针对高性能的轻量级Web服务。它需要POST
与内容类型application/x-www-form-urlencoded
。 Web服务执行许多任务,包括解密,数据库工作,业务逻辑等。在负载测试期间,性能监视器(ANTS和Visual Studio)指向占用大部分时间的单一代码行,实际上是67%。ASP.NET请求表单性能
string value = context.Request.Form[MY_FORM_KEY];
在此行的代码,性能监控,调用堆栈的底部说,这电话:
System.Web.Hosting.UnsafeIISMethods.MgdSyncReadRequest();
是罪魁祸首。
任何人都可以帮忙请解释?该应用程序是在.NET 4中,作为出版发行,IIS 7和Windows Server 2008上
谢谢 乔伊J.巴雷特
如果瓶颈是Request.Form索引器,我会大吃一惊。与你所描述的所有工作相比,这应该是微不足道的。 – 2011-05-04 07:46:23
您可能会多次引用context.Request.Form,相反...您可能需要将您的值克隆到本地变量中 – 2011-05-04 07:52:38
请考虑将其作为头而不是Form变量进行发送。我怀疑表单集合有更多的价值,并提出它使呼叫庞大。您也可以在构建解决方案时检查目标CPU。有时更改为x86可消除System.Web.Hosting.UnsafeIISMethods.MgdSyncReadRequest()...的瓶颈 – sajoshi 2011-05-04 09:56:15