Menü
Developer

Googles JavaScript-Engine V8 bekommt eine neue Pipeline

Durch die standarmäßige Verwendung des Interpreters Igintion und des Compilers TurboFan soll die JavaScript-Engine deutlich performanter werden und weniger Speicher benötigen.

vorlesen Drucken Kommentare lesen 2 Beiträge

Zwar nutzt Googles V8-Engine den Interpreter Igniton und den optimierenden Compiler TurboFan bereits seit geraumer Zeit, aber ab der kommenden Version 5.9 soll das Gespann alleine für die Ausführung von JavaScript-Anwendungen zuständig sein. Das V8-Team schneidet damit die alten Zöpfe Full-codegen und Crankshaft endgültig ab, die laut dem Blogbeitrag nicht mehr mit den aktuellen JavaScript-Sprachfeatures und -Optimierungen schritthalten können.

Insgesamt befindet sich die Pipeline aus TurboFan und Ignition bereits seit dreieinhalb Jahren in der Entwicklung. Der Interpreter hielt mit Version 5.3 Einzug in die V8-Engine. Zwar profitiert er am meisten von TurboFan, arbeitete aber bisher ebenso mit Crankshaft zusammen. Letzterer lässt sich übrigens mit Kurbelwelle übersetzen und passt damit ebenso wie Ignition als elektrische Zündung zum Achtzylinderbild der V8, während der neue Compiler TurboFan in seiner eigentlichen Bedeutung als Triebwerk von Flugzeugen zum Einsatz kommt.

Inhaltlich hat sich das 2013 gestartete TurboFan-Projekt darauf konzentriert, die Schwachstellen von Crankshaft auszugleichen, da Letzterer JavaScript nur teilweise optimieren kann und beispielsweise beim Exception-Handling an seine Grenzen stieß. TurboFan war von Anfang an nicht nur auf das seinerzeit aktuelle ECMAScript 5 ausgelegt, sondern bereits auf den Nachfolger ES2015 vorbereitet, der sich damals noch als ES6 in der Entwicklung befand. Durch ein Layer-Design lassen sich High-Level und Low-Level-Optimierungen sauber trennen, wodurch sich Sprachfeatures hinzufügen lassen sollen, ohne den architekturspezifischen Code zu beeinflussen.

Von der exklusiven Nutzung der Kombination aus Ignition und TurboFan verspricht sich das V8-Team laut dem Blogbeitrag einen großen Performancegewinn und einen signifikant geringeren Speicherbedarf für JavaScript-Anwendungen. Benchmarks von Websites wie Instagram, CNN, Facebook und YouTube zeigen gerade für die mobile Engine auf dem Nexus 5X einen Performancegewinn von etwa 10 Prozent, während der Linux-Desktop auf etwa 5 Prozent Zuwachs kommt.

Die Optimierungen schlagen vor allem auf Mobilgeräten zu Buche.

(Bild: Google)

Die V8-Engine in der kommenden Chrome-Version M59 soll dank der neuen Pipeline etwa fünf bis zehn Prozent schlanker sein als bisher. Auch das serverseitige JavaScript in Form von Node.js profitiert von den Optimierungen sowohl hinsichtlich der Performance als auch beim Speicherbedarf. (rme)