Programmering

Mozilla Firefox øger JavaScript-ydeevnen

Firefox-brugere kan forvente forbedret JavaScript-ydeevne i Firefox 83-browseren, med Warp-opdateringen til SpiderMonkey JavaScript-motoren som standard aktiveret.

Også kaldet WarpBuilder, Warp forbedrer lydhørhed og hukommelsesforbrug og fremskynder sidelastning ved at foretage ændringer i JiT (just-in-time) compilere. Optimering af JiT ændres til kun at stole på CacheIRs enkle lineære bytecode-format, specifikt CacheIR-data indsamlet af basislinierne. Den nye arkitektur, der er udnyttet i browseren, er også beskrevet som værende mere vedligeholdelig og låser op for yderligere SpiderMonkey-forbedringer.

Firefox 83 blev offentliggjort i beta 20. oktober og er planlagt til at blive frigivet 17. november. Warp har vist sig at være hurtigere end Ion, SpiderMonkeys tidligere optimerings-JiT, herunder en forbedring på Google Docs med 20 procent. Andre JavaScript-intensive websteder som Netflix og Reddit har også vist forbedring.

Basering af Warp på CacheIR muliggjorde fjernelse af kode i hele motoren, der var nødvendig for at spore global type inferensdata, der blev brugt af IonBuilder, hvilket resulterede i speedups. Selvom IonBuilder og WarpBuilder begge producerer Ion MIR, en mellemrepræsentation, der bruges af den optimerende JiT-back-end, havde IonBuilder en masse kompleks kode, der ikke var nødvendig i WarpBuilder. Warp kan også udføre mere arbejde uden for tråden og har brug for færre rekompileringer. Planer kræver fortsatte optimeringer af Warp, som i øjeblikket er langsommere end ion på nogle syntetiske benchmarks.

Warp har erstattet frontenden - MIR-byggefasen - af IonMonkey JiT. Planer kræver fjernelse af den gamle kode og arkitektur, som sandsynligvis vil ske i Firefox 85. Som et resultat forventes yderligere forbedringer af ydeevnen og hukommelsesforbruget. Mozilla vil også fortsætte med at optimere bagenden af ​​IonMonkey JiT trinvist, da Mozilla mener, at der stadig er plads til forbedring af JavaScript-intensive arbejdsbelastninger. Også under udvikling er et værktøj til webudviklere og Mozilla til at udforske CacheIR-data til en JavaScript-funktion.