Wydajność kompilacji JIT została zauważalnie poprawiona w nocnych kompilacjach Firefoksa

В nocne budowanie Firefox dołączony zaktualizowany kompilator JIT, rozwinięty o nazwie kodowej WarpBuilder. Aby włączyć nowy JIT, w about:config dostępna jest opcja „javascript.options.warp”.
Należy zauważyć, że WarpBuilder to dopiero pierwszy krok w kierunku wprowadzenia nowych optymalizacji do przeglądarki, których wdrożenie zaplanowano na przyszły rok.

Nowy JIT poprawia wydajność silnika JavaScript SpiderMonkey, redukując informacje o typie wewnętrznym śledzone w silniku i wykorzystując wcześniej technikę pośredniego buforowania kodu (CacheIR) zaproponowane w „bazowym” interpreterze kodu bajtowego, który zajmuje niszę pośrednią między zwykłym interpreterem a kompilatorem sprzed JIT. Zmiany te pozwoliły znacznie uprościć architekturę JIT, zwiększyć responsywność, skrócić czas ładowania strony i zmniejszyć zużycie pamięci.

odnotowanyże nowy JIT rozwiązał wiele problemów starego JIT IonBuilder, takich jak:

  • Złożoność wdrożenia i potencjalne problemy związane z bezpieczeństwem;
  • Dodatkowe obciążenie dla kodu Baseline/C++;
  • Nadmierna specjalizacja prowadząca do niepotrzebnych ponownych kompilacji;
  • Generowanie kodu pośredniego MIR (IR średniego poziomu) w głównym wątku (w WarpBuilder główny zestaw kodu pośredniego jest umieszczony w osobnym wątku);
  • Dodatkowe zużycie pamięci do przechowywania danych o typach i grupach obiektów (ObjectGroups).

Średnio w testach oceniających wydajność na podstawie wskaźników wizualnych, przy użyciu WarpBuilder obserwuje się przyspieszenie o 5-15%. Wskaźnik ukończenia testu prędkościomierza wzrósł o 10%. Testy na rzeczywistych witrynach wykazały skrócenie czasu ładowania Dokumentów Google o 20%, indeks Indeks prędkości podczas otwierania sekcji Androida na Reddicie poprawiono przez 13%, pdfpaint zaczął działać szybciej 18%. Zużycie pamięci w teście tp6 spadła o 8%. wskaźniki statystyki w narzędziach programistycznych (devtools perf) również wykazały 8% zmniejszenie zużycia pamięci.

Źródło: opennet.ru

Dodaj komentarz