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

В нощни версии Firefox е включен обновен JIT компилатор, развиван под кодовото име WarpBuilder. За активиране на новия JIT в about:config е предложена опция «javascript.options.warp».
Забелязва се, че WarpBuilder е само първата стъпка към включването на нови оптимизации в браузъра, които се планират за реализиране през следващата година.

Новият JIT позволява повишаване на производителността на JavaScript двигателя SpiderMonkey чрез съкращаване на вътрешната информация за типовете, проследявана вътре в двигателя, и прилагане на техниката за кеширане на междинен код (CacheIR), преди това предложена в «baseline» интерпретатор на байткод, който заема междинна ниша между обикновения интерпретатор и предварителния JIT компилатор. Описаните промени значително опростиха архитектурата на JIT, повишиха отзивчивостта, съкратиха времето за зареждане на страницата и намалиха потреблението на памет.

Трябва да се отбележи, което новият JIT позволи да реши много от проблемите на стария JIT IonBuilder, като:

  • Сложността на реализирането и потенциалните проблеми с безопасността;
  • Допълнителните разходи за кода Baseline/C++;
  • Излишната специализация, водеща до ненужни прекомпилации;
  • Формирането на междинен код MIR (Middle-level IR) в основния поток (в WarpBuilder основната сборка на междинния код е изнесена в отделен поток);
  • Допълнителното харчене на памет за съхранение на данни за типове и групи обекти (ObjectGroups).

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

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster