Lighthouse audit: оценка скрипта против анализа скрипта

Выполняя аудит Lighthouse в инструментах разработчика Chrome, я получил следующий отчет о выполнении javascript. Я обнаружил, что main.js занимает много времени в Script Evaluation (455 мс) по сравнению с Script Parse (5 мс). Но я не могу понять, сколько сейчас времени оценки сценария? Сколько времени уходит на загрузку скрипта? Как мне его уменьшить?

Оценка сценария против анализа сценария


person Let me see    schedule 15.11.2019    source источник
comment
Пришло время фактически запустить скрипт (он evaled).   -  person wOxxOm    schedule 15.11.2019


Ответы (1)


Согласно следующей ссылке Lighthouse https://web.dev/bootup-time/, существует четыре основные затраты на выполнение любого JS файла:

  • Стоимость сети
  • Стоимость синтаксического анализа и компиляции: JavaScript анализируется и компилируется в основном потоке. Когда основной поток занят, страница не может отвечать на ввод пользователя.

  • Стоимость выполнения: JavaScript также выполняется в основном потоке. Если на вашей странице выполняется много кода до того, как он действительно понадобится, это также приведет к задержке вашего времени до интерактивности, что является одним из ключевых показателей, связанных с тем, как пользователи воспринимают скорость вашей страницы.

  • Стоимость памяти

Я считаю, что время оценки в терминологии Lighthouse - это время после разбора скрипта для загрузки всего файла в память. Другими словами, вам нужно проверить тяжелый файл и попытаться оптимизировать код в самом файле. Вот некоторые факты, которые я узнал, изучая ту же проблему, которую вы проверяете:

  • Оценка сценария - это этап между анализом сценария и выполнением сценария, который в основном загружает код в память.
  • Неиспользуемый код отрицательно повлияет на время синтаксического анализа, но не на время оценки и выполнения.
  • Время синтаксического анализа увеличивается с размером кода скрипта.
  • Время оценки скрипта увеличивается с увеличением количества используемого кода.
  • Lighthouse помечает сценарий как блокирующий основной поток, ТОЛЬКО если он влияет на TTI. Например, если файл сценария размером 10 МБ был добавлен в качестве ресурса блокировки рендеринга на любую страницу, но не использовался, Lighthouse пометит его как ресурс блокировки рендеринга, но не как блокирующий основной поток.
  • Оценка скрипта - это индикатор того, сколько кода требуется для запуска страницы.

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

person Hazem Hagrass    schedule 26.01.2020
comment
будет ли разделение файла уменьшать TTI? это уменьшит TBT, но не уверен в TTI. - person Anand Bhushan; 15.03.2021