微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 测量ASP.NET MVC的性能3

我在ASP.NET MVC 3中构建了一个 JSON服务,我希望能够测量应用程序中的动作执行时间(我想要自动记录慢动作).

这样看起来很棒http://coderjournal.com/2010/10/timing-the-execution-time-of-your-mvc-actions/(这里也提到了堆栈溢出的地方)

问题是我从这种方法中得到的测量必须是错误的;
添加了另一个秒表,启动了动作中的第一件事情,并在返回之前停止.

例:

>秒表里面的方法=> 10ms(序列化到json在这里省略,所以我可以明白,它比现实更短)
>秒表属性(上面的代码)=> 676ms
> Firefox表示请求=> 70ms

我相信firefox在这里有正确的时间(但它包括下载,所以它有点大),但我想了解为什么属性代码不起作用,任何想法?

解决方法

这可能不是为什么它显示长执行时间的原因,但是当您一次有多个请求时,该属性将无法正常使用mvc 3.

In prevIoUs versions of ASP.NET MVC,
action filters are create per request
except in a few cases. This behavior
was never a guaranteed behavior but
merely an implementation detail and
the contract for filters was to
consider them stateless. In ASP.NET
MVC 3,filters are cached more
aggressively. Therefore,any custom
action filters which improperly store
instance state might be broken.

我建议在OnActionExecuting和save it to HttpContext.Current.Items中实例化新的秒表 – 然后您可以在OnActionExecuted中检索它并打印出结果.

原文地址:https://www.jb51.cc/csharp/94889.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐