获取高精度的时间差,可以用来分析页面运行时间的长短

获取高精度的时间差,可以用来分析页面运行时间的长短 

Author:lostinet
From: joycode
DateTime.Now的精度是很低,这个低的意思是,两次获取的DateTime.Now的Ticks的差,只是一个较大数的整数倍。例如在我的机器上,这个差最小是10.114ms。所以,如果我用DateTime.Now来计算时间差,那么就无法精确到10ms以内。 
后来发现asp.net的trace的精度很高,用reflector看它的实现,发现了它是使用这两个方法的: 
参考msdn:
How To: Time Managed Code Using QueryPerformanceCounter and QueryPerformanceFrequency
 
我自己了按照这个写了个类,代码如下

Code


在ASP.NET的应用,可以在Global.asax的Application_BeginRequest事件中加入代码来纪录程序开始时的TickCount: 
context.items["beginrequesttickcount"]=a.gettickcount(); 
然后在页面输出的后面: 
<html>....
<div align="center">
<%=new TimeSpan(A.GetTickCount()-(long)Context.Items["BeginRequestTickCount"]).TotalMilliseconds%>
</div>
</body></html> 

这样就可以达到获取页面运行时间值了。(当然输出TotalMilliseconds后Asp.Net还要一些后期工作的,不过这个时间应该只需要0.n ms)

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [Asp.Net] 的这些文章也感兴趣:

MapX从数据库读取数据形成新图层
ASP.NET MVC Preview 5 演示Demo #8 实现JQuery结合Json进行后台数据Ajax方式验证
c#重点知识详解(三)
用asp.net精确提取网站数据的通用方法
Asp.net中基于Forms验证的角色验证授权
在你的网站添加一个OpenSearch
利用C#制作简单的留言板
ASP.Net实现将Word转换PDF格式
ASP.NET中在线用户统计
asp.net(c#) 取得网卡mac地址