Можно ли настроить настраиваемое дросселирование процессора в Chrome DevTools?

Я использую Google Chrome 63.

На вкладке " Производительность " DevTools есть три параметра регулирования дросселирования: "Без дросселирования", "4-кратное замедление" и "6-кратное замедление".

Можно ли настроить настраиваемое дросселирование, например "20-кратное замедление"? Это может быть с помощью установки какого - то флага в chrome.exe файла или программно с помощью библиотеки NodeJS.

Я обнаружил, что библиотека Lighthouse имеет полезную функцию, но если я изменю значение по умолчанию внутри нее (CPU_THROTTLE_METRICS, похоже, будет равно 4) от 4 до (например) 20 и запустит ее, как я могу быть уверен, что она на самом деле отстает на 20 раз вниз?

Кроме того, я хотел бы знать, можно ли подобным образом сделать такое симулированное "замедление" на GPU?

Спасибо за любой совет.

Ответ 1

Lighthouse использует команду Emulation.setCPUThrottlingRate в протоколе Chrome DevTools:

https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setCPUThrottlingRate

Вы можете контролировать протокол таким образом:

https://umaar.com/dev-tips/166-protocol-monitor/

Вы увидите эту команду в протоколе, когда вы переключаетесь с настройкой дросселирования на панели производительности.

Если вы спрашиваете, как быть уверенным, работает ли это - вот реализация из исходного кода Chromium:

https://github.com/chromium/chromium/blob/master/third_party/blink/renderer/platform/scheduler/util/thread_cpu_throttler.h#L21

//This class is used to slow down the main thread for//inspector "cpu throttling". It does it by spawning an//additional thread which frequently interrupts main thread//and sleeps.

Надеюсь это поможет.