JavaScript

V8 Lite Mode & Standard-Modus: Heap Size verringert

V8: Heap Size von JavaScript-Engine verringert
1 Kommentar

Das V8-Team hat dieses Jahr daran gearbeitet, den Heap Size der JavaScript-Engine zu verringern. Dabei herausgekommen sind sowohl Optimierungen am Standard-Modus der Engine, die die Performance nicht beeinflussen, als auch ein Lite Mode für Geräte mit wenig Speicher.

Dieses Jahr hat sich einiges an V8 getan. Der Heap Size der JavaScript-Engine soll im Durchschnitt um 18 Prozent gesunken sein, im Lite Mode seien es sogar 22 Prozent. In Ausnahmefällen könne mit diesem Modus sogar eine Reduktion von 32 Prozent erreicht werden. Der Lite Mode geht zu Lasten der Performance der Engine. Der Standard-Modus wurde hingegen einfach „fauler“ gestaltet und soll so bei gesunkenem Speicherbedarf die gleiche Performance bieten wie zuvor.

V8: Optimierungen für alle Anwender

Die Optimierungen an V8, die dafür vorgenommen wurden, gehen auf die Überlegung zurück, ein eigenständiges V8 Lite für Edge-Devices und Smartphones mit wenig Speicher zu entwickeln. Im Rahmen der Arbeit daran habe man aber festgestellt, so berichten Mythri Alle, Dan Elphick und Ross McIlroy im offiziellen V8-Blog, dass viele der dafür vorgesehenen Anpassungen auch über ein Lazy-Ladeverhalten in der Standard-Version erreichten werden können.

Das liegt daran, dass der Heap Size in V8  deutlich durch Prozesse beeinflusst worden sei, die nur zur Optimierung des JavaScript-Codes notwendig sind oder ausschließlich in ungewöhnlichen Situationen genutzt werden. Im Normalfall seien diese aber nicht zur initialen Ausführung des Codes nötig, sodass hier bei der Optimierung angesetzt werden konnte. Zu den vorgenommenen Maßnahmen gehört, dass der Bytecode von Funktionen, die nicht kurz zuvor ausgeführt wurden, im Rahmen der Garbage Collection aus dem Heap Space entfernt wird. Auch werden Source Position Tables nur noch dann erfasst, wenn es notwendig ist. Zuvor war das Mapping von Bytecode-Sequenzen auf Zeichen-Positionen im JavaScript-Code immer erfasst worden, obwohl das nur für Exceptions und Aufgaben im Rahmen der Entwicklung notwendig ist. Die Feedback Allocation wurde auch „fauler“ gestaltet und im Ausführungsprozess nach hinten verschoben und findet nun erst nach der Ausführung der jeweiligen Funktion statt.

Die Neuerungen an V8 wurden im Detail zu den jeweiligen Releases beschrieben, in denen sie ausgeliefert wurden. Der neue Blogpost dazu gibt außerdem einen Überblick über die verschiedenen vorgenommenen Optimierungen sowie die Auswirkungen.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

1 Kommentar auf "V8: Heap Size von JavaScript-Engine verringert"

avatar
400
  Subscribe  
Benachrichtige mich zu:
Andreas
Gast

Interessanter Artikel. Aber lazy sollte man nicht mit faul übersetzen. Am besten übersetzt man es gar nicht, weil eh fast alle Entwickler wissen, was lazy loading bedeutet. Wenn man es unbedingt übersetzen möchte dann eher mit „bei Bedarf“ oder so.

X
- Gib Deinen Standort ein -
- or -