Mozilla Firefox poboljšava JavaScript performanse

Korisnici Firefoxa mogu očekivati ​​poboljšane performanse JavaScript-a u pregledniku Firefox 83, s Warp ažuriranjem SpiderMonkey JavaScript motora omogućenom prema zadanim postavkama.

Također se naziva WarpBuilder, Warp poboljšava odziv i korištenje memorije te ubrzava učitavanje stranica unošenjem promjena u JiT (upravo u vrijeme) kompajlere. Optimizacija JiT-a promijenjena je tako da se oslanja isključivo na CacheIR jednostavni linearni format bajt-koda, posebno na podatke CacheIR-a prikupljene na osnovnim razinama. Nova arhitektura korištena u pregledniku također je opisana kao održivija i otključava dodatna poboljšanja SpiderMonkey.

Firefox 83 objavljen je u beta verziji 20. listopada, a zakazan je za izlazak 17. studenog. Pokazalo se da je Warp brži od Iona, prethodnog optimizirajućeg JiT-a SpiderMonkeyja, uključujući poboljšanje vremena učitavanja Google dokumenata za 20 posto. I druge web stranice s intenzivnim JavaScriptom, poput Netflixa i Reddita, također su pokazale poboljšanje.

Temeljem Warpa na CacheIR-u omogućeno je uklanjanje koda iz cijelog motora koji je bio potreban za praćenje podataka o zaključivanju globalnog tipa koje koristi IonBuilder, što je rezultiralo ubrzavanjima. Iako IonBuilder i WarpBuilder proizvode Ion MIR, srednji prikaz koji koristi optimizirajuća pozadina JiT-a, IonBuilder je imao puno složenog koda koji u WarpBuilderu nije bio potreban. Warp također može raditi više izvan niti i treba manje rekompilacija. Planovi zahtijevaju kontinuiranu optimizaciju Warpa, koji je trenutno sporiji od Iona na nekim sintetičkim mjerilima.

Warp je zamijenio prednji kraj - fazu izgradnje MIR-a - IonMonkey JiT-a. Planovi zahtijevaju uklanjanje starog koda i arhitekture, što će se vjerojatno dogoditi u Firefoxu 85. Kao rezultat toga očekuju se dodatna poboljšanja performansi i korištenja memorije. Mozilla će također nastaviti inkrementalno optimizirati stražnji kraj IonMonkey JiT-a, jer Mozilla vjeruje da još ima prostora za poboljšanje za radna opterećenja koja zahtijevaju JavaScript. Također je u razvoju alat za web programere i Mozillu za istraživanje CacheIR podataka za JavaScript funkciju.