Mozilla Firefox zwiększa wydajność JavaScript

Użytkownicy Firefoksa mogą spodziewać się lepszej wydajności JavaScript w przeglądarce Firefox 83, z domyślnie włączoną aktualizacją Warp do silnika JavaScript SpiderMonkey.

Warp, zwany także WarpBuilder, poprawia responsywność i wykorzystanie pamięci oraz przyspiesza ładowanie stron, wprowadzając zmiany w kompilatorach JiT (just-in-time). Optymalizacja JiT została zmieniona tak, aby polegała wyłącznie na prostym liniowym formacie kodu bajtowego CacheIR, w szczególności na danych CacheIR zebranych przez warstwy bazowe. Nowa architektura wykorzystana w przeglądarce jest również opisywana jako łatwiejsza w utrzymaniu i odblokowująca dodatkowe ulepszenia SpiderMonkey.

Firefox 83 został opublikowany w wersji beta 20 października i ma zostać wydany 17 listopada. Wykazano, że Warp jest szybszy niż Ion, poprzedni optymalizujący JiT SpiderMonkey, obejmujący 20-procentową poprawę czasu ładowania Dokumentów Google. Inne strony internetowe intensywnie korzystające z JavaScript, takie jak Netflix i Reddit, również wykazały poprawę.

Oparcie Warp na CacheIR umożliwiło usunięcie kodu w całym silniku, który był potrzebny do śledzenia danych wnioskowania o typie globalnym używanych przez IonBuilder, co spowodowało przyspieszenie. Chociaż IonBuilder i WarpBuilder tworzą Ion MIR, reprezentację pośrednią używaną przez optymalizujące zaplecze JiT, IonBuilder miał dużo złożonego kodu, który nie był potrzebny w WarpBuilder. Warp może również wykonywać więcej pracy poza wątkiem i wymaga mniejszej liczby ponownych kompilacji. Plany zakładają dalsze optymalizacje Warpa, który obecnie jest wolniejszy niż Ion w niektórych syntetycznych benchmarkach.

Warp zastąpił przód - fazę budowy MIR - IonMonkey JiT. Plany przewidują usunięcie starego kodu i architektury, co prawdopodobnie nastąpi w Firefoksie 85. W rezultacie spodziewane są dodatkowe ulepszenia wydajności i wykorzystania pamięci. Mozilla będzie również kontynuować stopniową optymalizację zaplecza IonMonkey JiT, ponieważ Mozilla uważa, że ​​wciąż jest miejsce na ulepszenia obciążeń intensywnie korzystających z JavaScript. W fazie rozwoju jest również narzędzie dla twórców stron internetowych i Mozilli do eksploracji danych CacheIR pod kątem funkcji JavaScript.