【发布时间】:2012-09-20 17:47:11
【问题描述】:
使用 ASP.NET MVC4 我在一个 WebAPI 项目中创建了一个 DelegatingHandler。我使用 Handler 将一些数据插入到 HttpRequestMessage Properties 集合中,以便 Http 管道的后面部分(例如其他处理程序、控制器)可以访问该数据。
例子:
var httpRequest = (HttpRequestMessageProperty) request.Properties["httpRequest"];
httpRequest.Headers["MY_DATA"] = "some data";
我想测试这对 WebAPI 请求处理的吞吐量的影响,所以我创建了一个控制台应用程序,它在 Action 委托中实例化一个 HttpClient,发送一个请求,并在发送下一个请求之前等待响应。我使用此处描述的性能测量策略计算了此操作委托在 5 秒窗口内成功执行的次数: http://www.codeproject.com/Articles/61964/Performance-Tests-Precise-Run-Time-Measurements-wi
我观察到的是,在执行从 Properties 集合中检索 httpRequest 的单行时,性能有很大的损失。如果没有这行代码,我会在 5 秒内看到 >700 次完成。当我添加该行时,它会在 5 秒内下降到
有其他人经历过吗?我应该使用不同的方法来缓存整个 Http 管道中可用的单个请求长度的数据吗?
【问题讨论】:
标签: c# .net performance caching asp.net-web-api