Когда «Начать профилирование и перезагрузить страницу» решает остановить автоматическую запись? - PullRequest
0 голосов
/ 20 января 2019

Я часто использую временную шкалу производительности в Chrome DevTools для захвата записей производительности моей страницы.

Большую часть времени я использую «Начать страницу профилирования и перезагрузки», которая автоматически запускает и останавливает запись.

Вопрос в следующем: Когда DevTools решает остановить запись ?

Я заметил, что запись всегда продолжается, по крайней мере, через несколько сотен мс после«Load» - событие и пытается выяснить, когда страница стала «в основном бездействующей».

Но это довольно туманное предположение.Хотелось бы узнать, зависит ли оно от какого-нибудь перформанса (например, от того, что использовалось в «Time to Interactive» в Lighthouse)?

1 Ответ

0 голосов
/ 20 января 2019

В настоящее время он ожидает три секунды после load события .
Это не задокументировано, поэтому может измениться в будущем без уведомления.

this._millisecondsToRecordAfterLoadEvent = 3000;

async _loadEventFired(event) {
  if (this._state !== Timeline.TimelinePanel.State.Recording || !this._recordingPageReload ||
      this._controller.mainTarget() !== event.data.resourceTreeModel.target())
    return;
  const controller = this._controller;
  await new Promise(r => setTimeout(r, this._millisecondsToRecordAfterLoadEvent));

  // Check if we're still in the same recording session.
  if (controller !== this._controller || this._state !== Timeline.TimelinePanel.State.Recording)
    return;
  this._stopRecording();
}
...