| V8 | |
|---|---|
| Basisdaten | |
| Entwickler | V8 Team (Google Inc.) |
| Aktuelle Version | 11.4[1][2] (24. Mai 2023) |
| Betriebssystem | Windows,macOS,Linux,FreeBSD,Android |
| Programmiersprache | C++ |
| Kategorie | JavaScript-Engine |
| Lizenz | BSD |
| github.com/v8/v8 | |
V8 ist eineJavaScript-Engine nach dem StandardECMA-262. Sie wird vom UnternehmenGoogle unter einerBSD-Lizenz alsfreie Software veröffentlicht. Ausgeliefert wird sie als Teil desWebbrowsersGoogle Chrome, kann jedoch auch unabhängig davon verwendet werden.[3] V8 soll die Ausführung von JavaScript-Code beschleunigen.
V8 wird von Googles V8-Team unter der Leitung vonLars Bak hauptsächlich in Googles Forschungslabor inAarhus (Dänemark) entwickelt, das mit derUniversität Aarhus zusammen Forschung an und Entwicklung vonvirtuellen Maschinen betreibt.[4][5]
V8 wird in der ProgrammierspracheC++ entwickelt und unterstützt diex86- undARM-Hardware-Architekturen undMehrkernprozessoren.
V8 steigert die Leistung zur Laufzeit, indem der JavaScript-Code bei der Ausführung durch sogenannteJust-in-time-Kompilierung zunächst in nativenMaschinencode übersetzt wird. Weitere Leistungsvorteile ergeben sich aus Optimierungstechniken wie dem Einsatz vonInline Caching, das JavaScript-Objekte versteckt, um geteilteKlassen erweitert, und einer sogenannten „exaktenautomatischen Speicherbereinigung“, die Speicher schnell und in kleinen Portionen zuweist und wieder freigibt, was hierbei längere Wartezeiten vermeidet.
Die Initialisierung der V8 wird durchSnapshots beschleunigt. Bei der Kompilierung der V8 wird eine JavaScript-Umgebung erstellt,serialisiert und durch denJIT vorkompiliert. Das Kompilat wird als Snapshot in die endgültige V8 integriert und dient zur Laufzeit neuen Instanzen der V8 als Vorlage.
V8 befindet sich seit 2006 in der Entwicklung.[6]Am 3. Juli 2008 wurde erstmals Quellcode veröffentlicht.[7]Als V8 am 2. September 2008 als Teil von Google Chrome veröffentlicht wurde, erreichte es im Vergleich mit anderen gebräuchlichen Implementierungen deutlich überlegene Ausführungsgeschwindigkeiten.[8]In der Folge zogen die Hersteller der anderen verbreiteten Browser daraufhin bald mit ähnlichen Optimierungen nach (wie Mozilla mit den Entwicklungen der ProjekteTraceMonkey undJägerMonkey), bis zuletzt auch Microsoft mit der imInternet Explorer 9 enthaltenen überarbeiteten JavaScript-Implementierung zu ähnlichen Ergebnissen kam.Mit der von Google unter dem ProjektnamenCrankshaft entwickelten Technik zur Optimierung des JavaScript-Codes zur Laufzeit wurden nochmals deutliche Leistungssteigerungen erzielt.[9] Sie wurde im Dezember 2010 erstmals vorgestellt und ist in Google Chrome ab der Version 10 enthalten.
2016 erhielt sie denProgramming Languages Software Award von ACM SIGPLAN.
V8 wird primär für den Einsatz im Browser Google Chrome entwickelt, aber auch in derereignisgesteuerten Plattform „Node.js“ findet sie Verwendung. Des Weiteren wird V8 im Rahmen des V8CGI-Projektes (mittlerweile umbenannt inTeaJS) als serverseitige Scriptsprache genutzt, und in der neuen Version 5 derQt-Bibliothek ersetzt V8 die bisher verwendete JavaScript-Implementierung. DasNoSQL-DatenbanksystemMongoDB benutzt V8 als JavaScript-Implementierung.[10] Mit der V8js Extension kann V8 inPHP integriert werden.[11]