mag*_*tte 6 .net c# asp.net datetime asp.net-mvc-3
请考虑以下用于测量Asp.Net应用程序中的请求/响应时间的代码:
protected void Application_EndRequest()
{
Trace.WriteLine(string.Format("{0}:{1}",
(DateTime.Now - HttpContext.Current.Timestamp).TotalMilliseconds,
HttpContext.Current.Request.RawUrl));
}
Run Code Online (Sandbox Code Playgroud)
根据MSDN,DateTime.Now具有大约10毫秒的分辨率.
另外,从MSDN HttpContext.Timestamp描述,
从
Timestamp属性返回的时间戳是服务器的本地时间,并在HttpContext对象实例化期间设置.本地时间等于UTC时间加上UTC偏移量.
理论上,上面的代码应该以毫秒为单位给出总的请求/响应时间.
我的问题是,这将是多么准确?还有更准确/更好的方法吗?
StopWatch 类的精度可能会低至微秒,具体取决于硬件和操作系统。如果您处于高分辨率模式,则可以读取 IsHighResolution 属性。如果没有,那么你的系统计时器的准确性就会下降。
http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx
使用此类的好处是您肯定不会比上面的代码更糟糕。如果采用高分辨率,您将获得更高的准确性。
但是,如果您想衡量性能并更好地了解您的服务,那么还有更好的工具。
例如,perfview 是一个很好的工具:
| 归档时间: |
|
| 查看次数: |
12024 次 |
| 最近记录: |