В ночных сборках Firefox существенно увеличена производительность JIT-компиляции

Материал из Викиновостей, свободного источника новостей
Перейти к навигации Перейти к поиску

27 сентября 2020 года

Wikinews-logo-ru.svg

В ночные сборки Firefox включён обновлённый JIT-компилятор, развиваемый под кодовым именем WarpBuilder. Для активации нового JIT в about:config предложена опция "javascript.options.warp".Отмечается, что WarpBuilder является лишь первым шагом на пути к включению в браузер новых оптимизаций, которые планируется реализовать в течение следующего года.

Новый JIT позволяет поднять производительность JavaScript-движка SpiderMonkey за счёт сокращения внутренней информации о типах, отслеживаемой внутри движка, и применению техники кэширования промежуточного кода (применение CacheIR), ранее предложенной в "baseline" интерпретаторе байткода, который занимает промежуточную нишу между обычным интерпретатором и предварительным JIT-компилятором. Указанные изменения позволили заметно упростить архитектуру JIT, повысить отзывчивость, сократить время загрузки страницы и снизить потребление памяти.

Отмечается, что новый JIT позволил решить многие проблемы старого JIT IonBuilder, такие как:

  • Усложнённость реализации и потенциальные проблемы с безопасностью;
  • Дополнительные накладные расходы для кода Baseline/C++;
  • Излишня специализация, приводящая к ненужным перекомпиляциям;
  • Формирование промежуточного кода MIT в основном потоке (в WarpBuilder основная сборка промежуточного кода вынесена в отдельный поток);
  • Дополнительное расходование памяти на хранение данных о типах и группах объектов (ObjectGroups).

В среднем в тестах, оценивающих производительность на основе визуальных метрик, при использовании WarpBuilder наблюдается ускорение на 5-15%. Скорость прохождения теста Speedometer увеличилась на 10%. Тестирование на реальных сайтах показало сокращение времени загрузки Google Docs на 20%, показатель SpeedIndex при открытии раздела Android в Reddit улучшился на 13%, pdfpaint стал работать быстрее на 18%. Потребление памяти в тесте tp6 снизилось на 8%. Показатели статистики в инструментах для разработчиков (devtools perf) также продемонстрировали снижение потребления памяти на 8%.

 

Источники[править]

OpenNET logo.png
Creative Commons
Эта статья содержит материалы из статьи «В ночных сборках Firefox существенно увеличена производительность JIT-компиляции», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Cartoon Robot.svg
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
 

Комментарии:В ночных сборках Firefox существенно увеличена производительность JIT-компиляции