CPU throttling — это механизм ограничения вычислительной мощности процессора для симуляции работы веб-страниц на устройствах с меньшей производительностью. В контексте Lighthouse он применяется для того, чтобы получить реалистичную оценку производительности сайта, приближенную к пользовательскому опыту на средних или слабых устройствах.
Lighthouse использует эмуляцию замедления процессора для имитации работы сайта на устройствах с низкой производительностью. На практике это достигается следующим образом:
В Lighthouse можно управлять параметрами throttling через конфигурацию:
const lighthouseConfig = {
extends: 'lighthouse:default',
settings: {
throttlingMethod: 'simulate', // 'devtools' или 'simulate'
throttling: {
rttMs: 150, // задержка сети
throughputKbps: 1638.4, // скорость сети
cpuSlowdownMultiplier: 4 // коэффициент замедления CPU
}
}
};
Ключевые параметры:
throttlingMethod: метод замедления, может быть:
simulate — эмуляция через Lighthouse;devtools — замедление через DevTools Protocol.cpuSlowdownMultiplier: множитель замедления CPU.
Значение 4x соответствует типичному среднему смартфону, 6x — слабому
устройству.
rttMs и throughputKbps задают сетевые
условия, но CPU throttling работает независимо от них.
simulate от
devtoolsFirst Contentful Paint (FCP) Замедление CPU увеличивает время рендеринга первого видимого контента, так как основной поток блокируется JavaScript-операциями. FCP отражает скорость восприятия пользователем первых визуальных элементов страницы.
Time to Interactive (TTI) TTI существенно увеличивается при throttling, особенно если сайт выполняет много JavaScript-вычислений при загрузке. Симулируется ситуация, когда пользовательский ввод задерживается из-за перегруженного основного потока.
Total Blocking Time (TBT) TBT показывает общее время, когда основной поток был занят задачами продолжительностью более 50 мс. CPU throttling увеличивает TBT пропорционально коэффициенту замедления.
cpuSlowdownMultiplier должно соответствовать
целевой аудитории: 4x для среднего смартфона, 6x для слабого.CPU throttling в Lighthouse позволяет оценивать пользовательский опыт на слабых устройствах и выявлять узкие места в JavaScript-коде и рендеринге. Без эмуляции замедленного процессора многие современные сайты могут показывать завышенные показатели скорости, что вводит в заблуждение разработчиков. Правильная настройка throttling обеспечивает точные и полезные данные для оптимизации производительности.