В Firefox обновен JIT компилатор, под кодовото име WarpBuilder. За активиране на новия JIT в about:config е предложена опция «javascript.options.warp».
Забелязва се, че WarpBuilder е само първата стъпка към включването на нови оптимизации в браузъра, които се планират за реализиране през следващата година.
Новият JIT позволява повишаване на производителността на JavaScript двигателя SpiderMonkey чрез съкращаване на вътрешната информация за типовете, проследявана вътре в двигателя, и прилагане на техниката за кеширане на междинен код (CacheIR), преди това в «baseline» интерпретатор на байткод, който заема междинна ниша между обикновения интерпретатор и предварителния JIT компилатор. Описаните промени значително опростиха архитектурата на JIT, повишиха отзивчивостта, съкратиха времето за зареждане на страницата и намалиха потреблението на памет.
, което новият JIT позволи да реши много от проблемите на стария JIT IonBuilder, като:
- Сложността на реализирането и потенциалните проблеми с безопасността;
- Допълнителните разходи за кода Baseline/C++;
- Излишната специализация, водеща до ненужни прекомпилации;
- Формирането на междинен код (Middle-level IR) в основния поток (в WarpBuilder основната сборка на междинния код е изнесена в отделен поток);
- Допълнителното харчене на памет за съхранение на данни за типове и групи обекти (ObjectGroups).
В средата на тестовете, оценяващи производителността на базата на визуални метрики, при използването на WarpBuilder се наблюдава ускорение от 5-15%. Скоростта на преминаване на теста Speedometer се е увеличила с 10%. Тестовете на реални сайтове показаха съкращаване на времето за зареждане на Google Docs с , показател при отваряне на раздела Android в Reddit се е подобрил с , pdfpaint стана по-бърз с . Потреблението на памет в теста е намаляло с 8%. 🥇В нощните сборки на Firefox е значително увеличена производителността на JIT компилацията | ProHoster
Източник: opennet.ru
