首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 獲取頁面執行時間的多種方法

     編輯:關於ASP.NET

效能調優第一步是測量。本文整理伺服器端與客戶端兩大維度的計時技巧。

一、伺服器端計時

1. Global.asax 攔截整個請求管線

DateTime _start;
protected void Application_BeginRequest(object sender, EventArgs e)
{ _start = DateTime.Now; }

protected void Application_EndRequest(object sender, EventArgs e)
{
    TimeSpan ts = DateTime.Now - _start;
    Response.Write($"<!-- 請求總耗時: {ts.TotalMilliseconds} ms -->");
}

2. 頁面生命週期事件計時(精確到頁面處理)

DateTime _pageStart;
protected override void OnPreInit(EventArgs e)
{ _pageStart = DateTime.Now; base.OnPreInit(e); }

protected override void OnLoadComplete(EventArgs e)
{
    base.OnLoadComplete(e);
    TimeSpan ts = DateTime.Now - _pageStart;
    Response.Write($"<div style='color:gray'>頁面處理耗時: {ts.TotalMilliseconds} ms</div>");
}

二、客戶端計時(含網路傳輸、瀏覽器渲染)

<head>
<script> var t1 = performance.now(); </script>
</head>
<body>
  ... 頁面內容 ...
  <div id="perf"></div>
  <script>
    window.addEventListener('load', () => {
      document.getElementById('perf').innerText = 
        '頁面完全載入耗時: ' + (performance.now() - t1).toFixed(2) + ' ms';
    });
  </script>
</body>

使用 performance.now() 取代 Date.getTime(),精度達微秒級,且不受系統時間調整影響。

三、進階:MiniProfiler / Glimpse

  • MiniProfiler:StackExchange 開源,幾行代碼嵌入,顯示 SQL、HTTP、View 渲染各階段耗時,支援 ASP.NET Core / MVC / WebForms。
  • Glimpse:偵錯神器,瀏覽器底部顯示完整請求時間線、路由、Session、快取等資訊。

生產環境建議整合 APM 工具,開發階段用上述輕量方式快速定位瓶頸。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved