2013-09-05 43 views
5

Glimpse的HUD提供了一個非常有用的時間視圖 - 它們似乎與用於網絡捕獲的各種瀏覽器開發工具相關。Glimpse如何計算服務器,電線和客戶端的時間?

如果我簡單地實現一個自定義的HttpModule,這裏詳述的這個by Phil Haack,我會得到完全不同的服務器處理時間。收到的時間總是遠遠低於Glimpse報告的時間。然而,Glimpse與瀏覽器工具時序更接近。

掠影顯然是使用更復雜的技術來計算它。

  • Glimpse如何計算服務器處理時間的持續時間?
  • 如何準確計算導線時間?
  • 我想客戶端的時間都是基於收聽Javascript事件。它是否正確?

回答

8

,如果你看看在glimpse.hud.js文件,該文件是在發送給客戶端的glimpse.js客戶端文件的一部分,那麼你會看到所有的計時都是基於實施Navigation Timing API由瀏覽器。

根據該API提供的時間計算HUD中Glimpse顯示的時間。所以,第一次看到發生在這些時刻

var timingsRaw = (window.performance 
       || window.mozPerformance 
       || window.msPerformance 
       || window.webkitPerformance 
       || {}).timing; 

後,它開始計算時序,可以提供有關在哪裏查找性能問題的一些附加價值保持(在服務器上的問題,在客戶端上...)

processTimings = function (details) { 
    var result = {}, 
     networkPre = calculateTimings('navigationStart', 'requestStart'), 
     networkPost = calculateTimings('responseStart', 'responseEnd'), 
     network = networkPre + networkPost, 
     server = calculateTimings('requestStart', 'responseStart'), 
     browser = calculateTimings('responseEnd', 'loadEventEnd'), 
     total = network + server + browser; 
    ... 
}; 

calculateTimings = function (startIndex, finishIndex) { 
    return timingsRaw[finishIndex] - timingsRaw[startIndex]; 
}; 

正如你所看到的,這也適用於對服務器,這解釋了爲什麼您的時間,你在服務器上有效地計算,較低然後掠影所示的那些所示的定時。

注意:當然,計算這些時間的方式只適用於HTTP選項卡上顯示在HUD中的時間。例如時間軸選項卡中顯示的時間是在服務器上計算的,因爲它們顯示服務器上不同處理步驟之間的時間,這顯然是瀏覽器無法計時的原因。

我希望這能回答你的問題。

+0

謝謝!我正在努力看到森林裏的樹木。 – Jarfish

相關問題