если вы посмотрите на файл glimpse.hud.js, который является частью клиентского файла glimpse.js, отправляемого клиенту, вы увидите, что все тайминги основаны на Navigation Timing API, реализованный браузером.
Время, отображаемое Glimpse в HUD, рассчитывается на основе времени, предоставленного этим API. Итак, первый 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];
};
Как видите, это также относится к таймингам, показанным для сервера, что объясняет, почему ваши тайминги, которые вы фактически рассчитали на сервере, ниже, чем те, которые показывает Glimpse.
Примечание. Конечно, способ расчета этих временных интервалов применим только к тем, которые отображаются в HUD на вкладке HTTP. Например, время, отображаемое на вкладке Временная шкала, рассчитывается на сервере, поскольку оно показывает время между различными этапами обработки на сервере, которое по очевидным причинам не может быть рассчитано браузером.
Надеюсь, это ответит на ваш вопрос.
person
cgijbels
schedule
05.09.2013