Google heeft optimalisaties aan zijn V8 JavaScript-engine van Chrome aangebracht die tot prestatieverbeteringen zouden leiden. Het gaat met name om de toevoeging van de Sparkplug-compiler en om een mechanisme met de naam short builtins.
Google meldt tegen limitaties aan te lopen bij het verbeteren van de interpreter van de V8-engine door inherente overhead en daarom voegt het bedrijf een nieuwe compiler toe. Deze Sparkplug-compiler neemt vanaf versie 9.1 zitting tussen de Ignition- en Turbofan-compilers. De functies die Sparkplug compileert, zijn al gecompileerd naar bytecode, waarmee het harde werk feitelijk al is verricht en deze zich niet met compileren van JavaScript-bronnen hoeft bezig te houden, detailleert Google. Daarnaast compileert Sparkplug lineair direct naar machinecode, zonder intermediate representation te genereren, wat voor verdere prestatiewinst zorgt, aldus het bedrijf.
Voor short builtin calls optimaliseert de V8-engine de geheugenlocatie van gegenereerde code. Cpu's hebben er voordeel bij als codesnippets voor builtin functions, veelgebruikte routines, in dezelfde geheugenregionen als gegenereerde code geplaatst zijn, onder andere voor optimalisaties als branche prediction. Als dit niet het geval is kunnen die optimalisaties falen met lagere prestaties tot gevolg. Google noemt Apples M1-soc als chip die hier met name mee te maken heeft. Google ziet het gekozen builtin-mechanisme als tijdelijke oplossing, ook omdat dat voor verhoogd geheugengebruik door V8 kan leiden. Voor de lange termijn wil het ontwikkelteam JIT-code dichter bij de Chrome-binary plaatsen.
De aanpassingen zijn verwerkt in Chrome 91, die deze week verscheen. Google richt zich de afgelopen maanden sterk op het verbeteren van de prestaties van Chrome. Zo neemt de browser vanaf versie 89 minder geheugen in en laadt de browser vanaf versie 87 pagina's sneller.