我想计算ASP.NET页面的执行时间并将其显示在页面上。目前我正在使用System.Diagnostics.Stopwatch计算执行时间,然后将值存储在日志数据库中。
秒表在OnInit中启动并在OnPreRenderComplete中停止。这似乎工作得很好,并且它提供了与页面跟踪中显示的执行时间类似的执行时间。
现在的问题是我无法在页面上显示执行时间,因为秒表在生命周期中停止得太晚。
这样做的最佳方式是什么?
答案 0 :(得分:1)
Here一个工作解决方案,重新定义Page_Init()和Page_preRender()方法以及时获得差异。
private int startTime;
protected void Page_Init(object sender, EventArgs e)
{
startTime = Environment.TickCount;
}
protected void Page_PreRender(object sender, EventArgs e)
{
int endTime = Environment.TickCount;
double executionTime = (double)(endTime - startTime) / 1000.0;
lblLabel.Text = "Page Execution time is " + executionTime + " seconds.";
}
答案 1 :(得分:0)
将执行时间信息保留到服务器(数据库,文件系统,缓存),然后使用ajax或jquery将其从服务器中异步拉入页面区域。
答案 2 :(得分:0)
我会在渲染时间内从秒表中获取经过的时间。此时,大多数(可能几乎所有)页面执行时间已经过去。继续并停止现在停止监视并使用该号码登录到您的数据库。我敢打赌它与页面上显示的内容没什么不同。