WebAssembly, aber schneller: Neues V8-Feature vorgestellt

Neuer Baseline Compiler für WebAssembly in V8: Liftoff ist da
Keine Kommentare

V8 v6.9 hat ein neues Feature mitgebracht: Den Compiler Liftoff, der WebAssambly-Anwendugnen deutlich schneller laden soll. Nun wurde Liftoff im V8-Blog vorgestellt.

V8 hat einen neuen Compiler für WebAssembly-Anwendungen bekommen. Das wurde bereits im Rahmen der Beta-Veröffentlichung von Version 6.9 mitgeteilt. Nun gibt es aber weitere Informationen dazu, was sich verändert. Mathias Bynens hat Liftoff, den neuen Baseline Compiler für WebAssembly in V8, im V8-Blog vorgestellt.

Liftoff vs TurboFan: Was sich ändert

Bislang wurden WebAssembly-Anwendungen in V8 ausschließlich mit TurboFan kompiliert. Dabei wurde eine Intermediate Representation erzeugt. Dieser Prozess ist jedoch zeitaufwändig und benötigt viel Memory, wie Bynens berichtet. Liftoff hingegen erzeugt Code so schnell wie möglich. Die Code-Qualität soll bei Liftoff zugunsten der Compilingzeit erst einmal zweitrangig sein, so ist dem Blogpost zum neuen Compiler zu entnehmen. Liftoff soll TurboFan nämlich nicht ersetzen, sondern nur ergänzen.

So wird Code mit Liftoff erst einmal mit der heißen Nadel gestrickt: Der neue Compiler erstellt Machine Code in einem einzigen Durchgang aus dem Bytecode von WebAssembly. Die Pipeline von Liftoff dabei hat nur zwei Stufen: Den Function Body Decoder und die Code Generation. Liftoff erzeuge Code während der Dekodierens und Validierens eines Funktionsbodys. Dem gegenüber stehen sieben Stufen bei TurboFan, wie dem Blogpost von Bynens zu entnehmen ist.

Nachdem der Code durch den Baseline Compiler Liftoff inital zur Verfügung gestellt wurde, setzt die langsamere Kompilierung durch TurboFan an. Besonders schnell ist Liftoff dabei nur beim Startup; die Performance darüber hinaus wird weiterhin durch TurboFan bestimmt. Die Unterschiede in der Startup-Zeit sollen laut Benchmarks, die Bynens im Blogpost zum Liftoff zitiert, im Bereich des 5,9- bis 6,7-fachen von TurboFan liegen.

Liftoff für WebAssembly in V8: Weitere Pläne von Google

Derzeit ist Liftoff noch nicht für arm und arm64 verfügbar und kann somit nicht für die Beschleunigung von WebAssembly-Apps auf Smartphones genutzt werden. Der Compiler steht bislang nur für Intel-Plattformen zur Verfügung. Dies zu ändern, gehört laut Bynens zu den weiteren Plänen für Liftoff. Auch darüber hinaus soll am Support für Mobilgeräte gearbeitet werden, da hier weniger Arbeitsspeicher zur Verfügung steht als auf auf Desktoprechnern, was auf dem bisherigen Entwicklungsstand zu Problemen führen kann.

Ab Chrome 69 ist Liftoff standardmäßig aktiviert. Es ist jedoch möglich, den neuen Baseline Compiler manuell zu deaktivieren. Dazu kann das Flag –liftoff/–no-liftoff verwendet werden. Weitere Informationen zum neuen Compiler können im entsprechenden Blogpost gefunden werden.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -