как Google Lighthouse вычисляет время оценки javascript и почему оно сильно различается для одних и тех же скриптов в разных средах

Я работаю над улучшением показателей производительности веб-сайта. Запустив lighthouse в Reduce JavaScript execution time под diagnostics, я вижу, что для некоторых из моих js-скриптов много Script Evaluation времени.

Если я запускаю lighthouse в другой среде, я получаю different evaluation time for the same scripts, эта разница очень велика, например, для одного скрипта она изменяется с 1700 мс на 100 мс,

Я хотел понять how lighthouse calculates the evaluation time, чтобы поработать над его сокращением.

Эти файлы js сравнительно меньше, чем другие файлы с меньшим временем оценки, что я не могу понять. Если это важно, при профилировании я вижу, что время выполнения того же скрипта составляет 45 мс.

PS - Я знаю, что выполнение и оценка скрипта отличаются

Спасибо за любую помощь.


person Anand Bhushan    schedule 17.03.2021    source источник


Ответы (1)


Оценки Lighthouse всегда различаются в разных тестах, а также на разных устройствах, и это зависит от времени синтаксического анализа файла, а также от выполнения, от того, сколько памяти он использует, а также от стоимости сети. Эти детали должным образом задокументированы официальными лицами.

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

Если у вас есть небольшие файлы, как вы упомянули, вы можете проверить, есть ли какие-либо коды блокировки рендеринга или другие синхронные действия, которые обычно занимают много времени.

Даже ваш тест профилирования приводит к небольшой временной сложности для выполнения, может быть, это может быть стоимость сети или памяти? Вы можете проверить это на вкладке сети или проверить, сколько памяти он может выделить.

Оценка сценария - это фактически сценарий, который необходим для запуска страницы на ходу.

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

Следует отметить, что если у вас есть неиспользуемый код, он не оценивается, поэтому вы можете фильтровать только необходимый код, не беспокоясь о неиспользуемых кодах.

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

Вы можете проверить источники ниже для получения более подробной информации:

Время загрузки для скрипта

Об общей оценке производительности

person Ashish Yadav    schedule 20.03.2021
comment
привет @ashish, спасибо за информацию, я знаю, что оценка Lighthouse зависит от сети и от других вещей. Но меня это не беспокоит, я просто хотел узнать, как Lighthouse вычисляет время оценки скрипта, и почему в той же сети существует огромное различие для одного и того же скрипта в diff env? - person Anand Bhushan; 27.03.2021
comment
@AnandBhushan Я включил, когда происходит оценка, но мы не можем точно сказать, почему существует огромное различие для одного и того же скрипта. Скорее всего, это состояние сети во время оценки? - person Ashish Yadav; 01.04.2021