Zum Inhalt springen

„V8 (JavaScript-Engine)“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Kleinigkeiten verbessert
K wikilinks
 
(27 dazwischenliegende Versionen von 20 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Infobox Software
{{Infobox Software
| Name = V8
| Name =
| Logo =
| Logo =
| Screenshot =
| Screenshot =
| Beschreibung =
| Beschreibung = <!-- Beschreibung des Screenshots! -->
| Maintainer =
| Maintainer =
| Hersteller = V8 Team ([[Google Inc.]])
| Erscheinungsjahr =
| Hersteller = V8 Team ([[Google Inc.]])
| AktuelleVersion = 5.6
| AktuelleVersion =
| AktuelleVersionFreigabeDatum = 2. Dezember 2016<ref>[http://v8project.blogspot.de/2016/12/v8-release-56.html V8 Release 5.6]</ref>
| AktuelleVersionFreigabeDatum =
| AktuelleVorabVersion =
| Betriebssystem = [[Microsoft Windows|Windows]], [[macOS]], [[Linux]], [[FreeBSD]], [[Android (Betriebssystem)|Android]]
| AktuelleVorabVersionFreigabeDatum =
| Programmiersprache = [[C++]]
| Betriebssystem = [[Microsoft Windows|Windows]], [[macOS]], [[Linux]], [[FreeBSD]], [[Android (Betriebssystem)|Android]]
| Kategorie = JavaScript-Engine
| Lizenz = [[BSD-Lizenz|BSD]]
| Programmiersprache = [[C++]]
| Deutsch =
| Kategorie = [[JavaScript-Engine]]
| Website = [http://code.google.com/p/v8/ v8.googlecode.com]
| Lizenz = [[BSD-Lizenz|BSD]]
| Deutsch =
| Website = [https://github.com/v8/v8 github.com/v8/v8]
| Dateien =
}}
}}


'''V8''' ist eine [[Freie Software|freie]] Implementierung der Skriptsprache [[ECMAScript]] ([[JavaScript]]) nach dem Standard [[Ecma International|ECMA]]-262. Sie wird vom Unternehmen [[Google Inc.]] unter einer [[BSD-Lizenz]] als freie Software veröffentlicht. Ausgeliefert wird sie als Teil des [[Webbrowser]]s [[Google Chrome]], kann jedoch auch unabhängig davon verwendet werden.<ref>https://developers.google.com/v8/embed</ref> V8 soll die Ausführung von JavaScript-Code beschleunigen.
'''V8''' ist eine [[JavaScript-Engine]] nach dem Standard [[Ecma International|ECMA]]-262. Sie wird vom Unternehmen [[Google LLC|Google]] unter einer [[BSD-Lizenz]] als [[freie Software]] veröffentlicht. Ausgeliefert wird sie als Teil des [[Webbrowser]]s [[Google Chrome]], kann jedoch auch unabhängig davon verwendet werden.<ref>{{Internetquelle |url=https://v8.dev/ |titel=V8 JavaScript engine |abruf=2020-12-03}}</ref> V8 soll die Ausführung von JavaScript-Code beschleunigen.


V8 wird von Googles V8-Team unter der Leitung von [[Lars Bak (Informatiker)|Lars Bak]] hauptsächlich in Googles Forschungslabor in [[Aarhus]] ([[Dänemark]]) entwickelt, das mit der [[Universität Aarhus]] zusammen Forschung an und Entwicklung von [[virtuelle Maschine|virtuellen Maschinen]] betreibt.<ref>https://www.heise.de/newsticker/meldung/Google-Chrome-Google-greift-Microsoft-mit-eigenem-Browser-an-202391.html</ref>
V8 wird von Googles V8-Team unter der Leitung von [[Lars Bak (Informatiker)|Lars Bak]] hauptsächlich in Googles Forschungslabor in [[Aarhus]] ([[Dänemark]]) entwickelt, das mit der [[Universität Aarhus]] zusammen Forschung an und Entwicklung von [[virtuelle Maschine|virtuellen Maschinen]] betreibt.<ref>{{Webarchiv |url=http://www.ft.com/cms/s/0/03775904-177c-11de-8c9d-0000779fd2ac.html |wayback=20111231124135 |text=The genius behind Google’s browser}} FT Magazine, 27. März 2009 (über [[Lars Bak (Informatiker)|Lars Bak]] und die Entstehungsgeschichte von V8).</ref><ref>{{Internetquelle |autor=heise online |url=https://www.heise.de/newsticker/meldung/Google-Chrome-Google-greift-Microsoft-mit-eigenem-Browser-an-202391.html |titel=Google Chrome: Google greift Microsoft mit eigenem Browser an |abruf=2020-12-03}}</ref>


== Technik ==
== Technik ==
V8 wird in der Programmiersprache [[C++]] entwickelt und unterstützt die [[x86-Prozessor|x86]]- und [[ARM-Architektur|ARM-]]Hardware-Architekturen und [[Mehrkernprozessor]]en.
V8 wird in der Programmiersprache [[C++]] entwickelt und unterstützt die [[x86-Prozessor|x86]]- und [[Arm-Architektur|ARM-]]Hardware-Architekturen und [[Mehrkernprozessor]]en.


V8 steigert die Leistung zur Laufzeit, indem der JavaScript-Code bei der Ausführung durch sogenannte [[Just-in-time-Kompilierung]] zunächst in nativen [[Maschinensprache|Maschinencode]] übersetzt wird. Weitere Leistungsvorteile ergeben sich aus Optimierungstechniken wie dem Einsatz von [[Inline Caching]], das JavaScript-Objekte versteckt, um geteilte [[Klasse (Objektorientierung)|Klassen]] erweitert, und einer sogenannten „exakten [[automatische Speicherbereinigung|automatischen Speicherbereinigung]]“, die Speicher schnell und in kleinen Portionen zuweist und wieder freigibt, was hierbei längere Wartezeiten vermeidet.
V8 steigert die Leistung zur Laufzeit, indem der JavaScript-Code bei der Ausführung durch sogenannte [[Just-in-time-Kompilierung]] zunächst in nativen [[Maschinensprache|Maschinencode]] übersetzt wird. Weitere Leistungsvorteile ergeben sich aus Optimierungstechniken wie dem Einsatz von [[Inline Caching]], das JavaScript-Objekte versteckt, um geteilte [[Klasse (Objektorientierung)|Klassen]] erweitert, und einer sogenannten „exakten [[automatische Speicherbereinigung|automatischen Speicherbereinigung]]“, die Speicher schnell und in kleinen Portionen zuweist und wieder freigibt, was hierbei längere Wartezeiten vermeidet.


Die Initialisierung der V8 wird durch [[Schnappschuss (Informationstechnik)#Snapshot|Snapshots]] beschleunigt. Bei der Kompilierung der V8 wird eine JavaScript-Umgebung erstellt, [[Serialisierung|serialisiert]] und durch den [[Just-in-time-Kompilierung|JIT]] vorkompiliert. Das Kompilat wird als Snapshot in die endgültige V8 integriert und dient zur Laufzeit neuen Instanzen der V8 als Vorlage.
Die Initialisierung der V8 wird durch [[Schnappschuss (Informationstechnik)#Schnappschuss einer Internetseite|Snapshots]] beschleunigt. Bei der Kompilierung der V8 wird eine JavaScript-Umgebung erstellt, [[Serialisierung|serialisiert]] und durch den [[Just-in-time-Kompilierung|JIT]] vorkompiliert. Das Kompilat wird als Snapshot in die endgültige V8 integriert und dient zur Laufzeit neuen Instanzen der V8 als Vorlage.


== Geschichte ==
== Geschichte ==
V8 befindet sich seit 2006 in der Entwicklung.<ref>http://techon.nikkeibp.co.jp/article/HONSHI/20090106/163615/</ref>
V8 befindet sich seit 2006 in der Entwicklung.<ref>{{Internetquelle |url=http://techon.nikkeibp.co.jp/article/HONSHI/20090106/163615/ |titel=Why Is the New Google V8 Engine So Fast? &#91;Part 1&#93; |werk=Nikkei Electronics Asia |datum=2009-01-13 |archiv-url=https://web.archive.org/web/20131105163257/http://techon.nikkeibp.co.jp/article/HONSHI/20090106/163615/ |archiv-datum=2013-11-05 |abruf=2020-12-03}}</ref>
Am 3.&nbsp;Juli 2008 wurde erstmals Quellcode veröffentlicht.<ref>http://code.google.com/p/v8/source/browse/branches/0.1/ChangeLog</ref>
Am 3.&nbsp;Juli 2008 wurde erstmals Quellcode veröffentlicht.<ref>{{Internetquelle |url=https://bugs.chromium.org/p/v8/adminIntro |titel=v8 - V8 JavaScript Engine - Monorail |abruf=2020-12-03}}</ref>
Als V8 am 2.&nbsp;September 2008 als Teil von Google Chrome veröffentlicht wurde, erreichte es im Vergleich mit anderen gebräuchlichen Implementierungen deutlich überlegene Ausführungsgeschwindigkeiten.<ref>https://www.heise.de/newsticker/meldung/Google-Chrome-ueberholt-die-Konkurrenz-202963.html</ref>
Als V8 am 2.&nbsp;September 2008 als Teil von Google Chrome veröffentlicht wurde, erreichte es im Vergleich mit anderen gebräuchlichen Implementierungen deutlich überlegene Ausführungsgeschwindigkeiten.<ref>{{Internetquelle |autor=heise online |url=https://www.heise.de/newsticker/meldung/Google-Chrome-ueberholt-die-Konkurrenz-202963.html |titel=Google Chrome überholt die Konkurrenz |abruf=2020-12-03}}</ref>
In der Folge zogen die Hersteller der anderen verbreiteten Browser daraufhin bald mit ähnlichen Optimierungen nach (wie Mozilla mit den Entwicklungen der Projekte ''[[SpiderMonkey#TraceMonkey|TraceMonkey]]'' und ''[[SpiderMonkey#JägerMonkey|JägerMonkey]]''), bis zuletzt auch Microsoft mit der in dem seit dem 15.&nbsp;September 2010 in Beta-Phase befindlichen [[Internet Explorer]] 9 enthaltenen überarbeiteten JavaScript-Implementierung zu ähnlichen Ergebnissen kam.
In der Folge zogen die Hersteller der anderen verbreiteten Browser daraufhin bald mit ähnlichen Optimierungen nach (wie Mozilla mit den Entwicklungen der Projekte ''[[SpiderMonkey#TraceMonkey|TraceMonkey]]'' und ''[[SpiderMonkey#JägerMonkey|JägerMonkey]]''), bis zuletzt auch Microsoft mit der im [[Internet Explorer]] 9 enthaltenen überarbeiteten JavaScript-Implementierung zu ähnlichen Ergebnissen kam.
Mit der von Google unter dem Projektnamen ''Crankshaft'' entwickelten Technik zur Optimierung des JavaScript-Codes zur Laufzeit wurden nochmals deutliche Leistungssteigerungen erzielt.<ref>https://www.heise.de/ix/meldung/Chromes-Kurbelwelle-optimiert-JavaScript-zur-Laufzeit-1149365.html</ref> Sie wurde im Dezember 2010 erstmals vorgestellt und ist in Google Chrome ab der Version 10 enthalten.
Mit der von Google unter dem Projektnamen ''Crankshaft'' entwickelten Technik zur Optimierung des JavaScript-Codes zur Laufzeit wurden nochmals deutliche Leistungssteigerungen erzielt.<ref>{{Internetquelle |autor=heise online |url=https://www.heise.de/ix/meldung/Chromes-Kurbelwelle-optimiert-JavaScript-zur-Laufzeit-1149365.html |titel=Chromes "Kurbelwelle" optimiert JavaScript zur Laufzeit |abruf=2020-12-03}}</ref> Sie wurde im Dezember 2010 erstmals vorgestellt und ist in Google Chrome ab der Version 10 enthalten.

2016 erhielt sie den [[Programming Languages Software Award]] von ACM SIGPLAN.


== Verbreitung ==
== Verbreitung ==
V8 wird primär für den Einsatz im Browser Google Chrome entwickelt, aber auch in der [[ereignisgesteuerte Architektur|ereignisgesteuerten]] Plattform „[[Node.js]]“ findet sie Verwendung. Des Weiteren wird V8 im Rahmen des V8CGI-Projektes (mittlerweile umbenannt in [[TeaJS]]) als serverseitige Scriptsprache genutzt, und in der neuen Version 5 der [[Qt (Bibliothek)|Qt-Bibliothek]] ersetzt V8 die bisher verwendete JavaScript-Implementierung. Das [[NoSQL]]-Datenbanksystem [[MongoDB]] benutzt V8 als JavaScript-Implementierung.<ref>{{Internetquelle|url=http://blog.mongodb.org/post/46419580374/mongodb-24-javascript-changes|titel=MongoDB.org Community Blog|werk=blog.mongodb.org|zugriff=2016-06-27}}</ref> Mit der V8js Extension kann V8 in PHP integriert werden.<ref>[http://www.php.net/manual/de/book.v8js.php V8 Javascript-Engine Integration], PHP Manual.</ref>
V8 wird primär für den Einsatz im Browser Google Chrome entwickelt, aber auch in der [[ereignisgesteuerte Architektur|ereignisgesteuerten]] Plattform „[[Node.js]]“ findet sie Verwendung. Des Weiteren wird V8 im Rahmen des V8CGI-Projektes (mittlerweile umbenannt in [[TeaJS]]) als serverseitige Scriptsprache genutzt, und in der neuen Version 5 der [[Qt (Bibliothek)|Qt-Bibliothek]] ersetzt V8 die bisher verwendete JavaScript-Implementierung. Das [[NoSQL]]-Datenbanksystem [[MongoDB]] benutzt V8 als JavaScript-Implementierung.<ref>{{Internetquelle |url=http://blog.mongodb.org/post/46419580374/mongodb-24-javascript-changes |titel=MongoDB.org Community Blog |werk=blog.mongodb.org |abruf=2016-06-27}}</ref> Mit der V8js Extension kann V8 in [[PHP]] integriert werden.<ref>[http://www.php.net/manual/de/book.v8js.php V8 Javascript-Engine Integration], PHP Manual.</ref>

== Versionsgeschichte ==<!-- Unvollständige Liste: Vor und zwischen den angegebenen Versionen lagen weitere Releases. -->
* 4.5: 17. Juli 2015

* 5.0: 15. März 2016

* 5.8: 20. März 2017<ref>[https://v8project.blogspot.de/2017/03/v8-release-58.html V8 Release 5.8]</ref>
* 6.0: 19. Juni 2017

* 7.0: 15. Oktober 2018
* 7.2: 18. Dezember 2018<ref>{{Internetquelle |url=https://v8.dev/blog/v8-release-72 |titel=V8 release v7.2 · V8 |abruf=2019-01-31}}</ref>

* 8.0: 18. Dezember 2019

* 9.0: 17. März 2021


== Siehe auch ==
== Siehe auch ==
* [[WebKit#JavaScriptCore|JavaScriptCore]]
* [[WebKit#JavaScriptCore|JavaScriptCore]]

== Weblinks ==
* {{Google Code|v8}}
* {{Google Code|v8cgi}}
* {{Webarchiv | url=http://www.ft.com/cms/s/0/03775904-177c-11de-8c9d-0000779fd2ac.html | wayback=20111231124135 | text=The genius behind Google’s browser}} FT Magazine, 27. März 2009 (über [[Lars Bak (Informatiker)|Lars Bak]] und die Entstehungsgeschichte von V8).


== Einzelnachweise ==
== Einzelnachweise ==
<references />
<references />


[[Kategorie:ECMAScript]]
[[Kategorie:JavaScript-Engine]]
[[Kategorie:Node.js]]
[[Kategorie:Node.js]]
[[Kategorie:Freies Programmierwerkzeug]]
[[Kategorie:Freies Programmierwerkzeug]]
Zeile 54: Zeile 70:
[[Kategorie:Windows-Software]]
[[Kategorie:Windows-Software]]
[[Kategorie:Linux-Software]]
[[Kategorie:Linux-Software]]
[[Kategorie:Mac-OS-Software]]
[[Kategorie:MacOS-Software]]
[[Kategorie:BSD-Software]]
[[Kategorie:BSD-Software]]
[[Kategorie:Android-Software]]
[[Kategorie:Android-Software]]

Aktuelle Version vom 11. Mai 2025, 19:22 Uhr

V8

Basisdaten

Entwickler V8 Team (Google Inc.)
Aktuelle Version 11.4[1][2]
(24. Mai 2023)
Betriebssystem Windows, macOS, Linux, FreeBSD, Android
Programmier­sprache C++
Kategorie JavaScript-Engine
Lizenz BSD
github.com/v8/v8

V8 ist eine JavaScript-Engine nach dem Standard ECMA-262. Sie wird vom Unternehmen Google unter einer BSD-Lizenz als freie Software veröffentlicht. Ausgeliefert wird sie als Teil des Webbrowsers Google 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 von Lars Bak hauptsächlich in Googles Forschungslabor in Aarhus (Dänemark) entwickelt, das mit der Universität Aarhus zusammen Forschung an und Entwicklung von virtuellen Maschinen betreibt.[4][5]

V8 wird in der Programmiersprache C++ entwickelt und unterstützt die x86- und ARM-Hardware-Architekturen und Mehrkernprozessoren.

V8 steigert die Leistung zur Laufzeit, indem der JavaScript-Code bei der Ausführung durch sogenannte Just-in-time-Kompilierung zunächst in nativen Maschinencode übersetzt wird. Weitere Leistungsvorteile ergeben sich aus Optimierungstechniken wie dem Einsatz von Inline Caching, das JavaScript-Objekte versteckt, um geteilte Klassen erweitert, und einer sogenannten „exakten automatischen Speicherbereinigung“, die Speicher schnell und in kleinen Portionen zuweist und wieder freigibt, was hierbei längere Wartezeiten vermeidet.

Die Initialisierung der V8 wird durch Snapshots beschleunigt. Bei der Kompilierung der V8 wird eine JavaScript-Umgebung erstellt, serialisiert und durch den JIT 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 Projekte TraceMonkey und JägerMonkey), bis zuletzt auch Microsoft mit der im Internet Explorer 9 enthaltenen überarbeiteten JavaScript-Implementierung zu ähnlichen Ergebnissen kam. Mit der von Google unter dem Projektnamen Crankshaft 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 den Programming Languages Software Award von ACM SIGPLAN.

V8 wird primär für den Einsatz im Browser Google Chrome entwickelt, aber auch in der ereignisgesteuerten Plattform „Node.js“ findet sie Verwendung. Des Weiteren wird V8 im Rahmen des V8CGI-Projektes (mittlerweile umbenannt in TeaJS) als serverseitige Scriptsprache genutzt, und in der neuen Version 5 der Qt-Bibliothek ersetzt V8 die bisher verwendete JavaScript-Implementierung. Das NoSQL-Datenbanksystem MongoDB benutzt V8 als JavaScript-Implementierung.[10] Mit der V8js Extension kann V8 in PHP integriert werden.[11]

Versionsgeschichte

[Bearbeiten | Quelltext bearbeiten]
  • 4.5: 17. Juli 2015
  • 5.0: 15. März 2016
  • 5.8: 20. März 2017[12]
  • 6.0: 19. Juni 2017
  • 7.0: 15. Oktober 2018
  • 7.2: 18. Dezember 2018[13]
  • 8.0: 18. Dezember 2019
  • 9.0: 17. März 2021

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Chrome Platform Status. (abgerufen am 29. Juni 2023).
  2. Discontinuing release blog posts. 17. Juni 2022 (abgerufen am 19. Juni 2023).
  3. V8 JavaScript engine. Abgerufen am 3. Dezember 2020.
  4. The genius behind Google’s browser (Memento vom 31. Dezember 2011 im Internet Archive) FT Magazine, 27. März 2009 (über Lars Bak und die Entstehungsgeschichte von V8).
  5. heise online: Google Chrome: Google greift Microsoft mit eigenem Browser an. Abgerufen am 3. Dezember 2020.
  6. Why Is the New Google V8 Engine So Fast? [Part 1]. In: Nikkei Electronics Asia. 13. Januar 2009, archiviert vom Original am 5. November 2013; abgerufen am 3. Dezember 2020.
  7. v8 - V8 JavaScript Engine - Monorail. Abgerufen am 3. Dezember 2020.
  8. heise online: Google Chrome überholt die Konkurrenz. Abgerufen am 3. Dezember 2020.
  9. heise online: Chromes "Kurbelwelle" optimiert JavaScript zur Laufzeit. Abgerufen am 3. Dezember 2020.
  10. MongoDB.org Community Blog. In: blog.mongodb.org. Abgerufen am 27. Juni 2016.
  11. V8 Javascript-Engine Integration, PHP Manual.
  12. V8 Release 5.8
  13. V8 release v7.2 · V8. Abgerufen am 31. Januar 2019.