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中检索它并打印出结果.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...