Heim  >  Artikel  >  Web-Frontend  >  Wählen Sie die beste JS-Engine für Ihre Node-Anwendung

Wählen Sie die beste JS-Engine für Ihre Node-Anwendung

青灯夜游
青灯夜游nach vorne
2020-09-08 12:25:561902Durchsuche

Wählen Sie die beste JS-Engine für Ihre Node-Anwendung

Node.js entwickelt sich rasant. Derzeit ist Node.js 8 veröffentlicht. Gleichzeitig befindet sich auch eine Node.js-Version auf Basis von ChakraCore in der aktiven Entwicklung.

【Video-Tutorial-Empfehlung: node js-Tutorial

Der Originaltext lautet: Die aktuelle Version von Node.js v8 (nicht zu verwechseln mit V8, der JavaScript-Engine) wurde gerade veröffentlicht.

Das Original Der Autor verwendete Node.js v8-Version Für dieses Wort erklärte der Autor in Klammern speziell, dass es sich bei V8 hier nicht um die Javascript-Engine V8, sondern um die Version von Node.js handelt. Im offiziellen Node.js-Blogbeitrag Node v8.0.0 (Aktuell) gibt es jedoch einen Hinweis:

Beachten Sie, dass wir bei der Bezugnahme auf Node.js-Releaseversionen das „v“ in Node.js 8 entfernt haben . Frühere Versionen wurden allgemein als v0.10, v0.12, v4, v6 usw. bezeichnet. Um Verwechslungen mit V8, der zugrunde liegenden JavaScript-Engine, zu vermeiden, haben wir das „v“ entfernt und nennen es Node.js 8 .

Bitte beachten Sie, dass wir bei der Bezugnahme auf Node.js-Versionen das „v“ in Node.js 8 entfernt haben. Frühere Versionen werden oft als v0.10, v0.12, v4, v6 usw. bezeichnet. Um Verwechslungen mit der V8-JavaScript-Engine zu vermeiden, haben wir das „v“ weggelassen und es Node.js 8 genannt.
Die Node.js v8-Version sollte also direkt Node.js 8 heißen.

Da die von Node.js verwendete JavaScript-Engine nicht weiß, wann neue Funktionen eingeführt werden, kennen Entwickler die Leistungsvor- und -nachteile verschiedener Engines genau.

Wir haben eine Leistungsbewertung für die folgenden Node.js-Versionen durchgeführt:

  • Node.js 6.10.1 (V8 5.1.281.95)* Node.js 7.10 (V8 5.5.372.43)
  • Node.js 7.10 verwendet - - turbo --ignition Parameter (V8 5.5.372.43)
  • Node.js 8.0 (V8 5.8.283.41)
  • Node.js 8.0 --turbo --ignition Parameter (V8 5.8.283.41) verwenden
  • Node.js 8.0 ( ChaKraCore 2.0.0.0) (Verwendung von 2 verschiedenen Builds)

Mit diesem einfachen Visualisierungstool können Sie die Leistung verschiedener Versionen für verschiedene Funktionen sehen.

Wenn Sie Node.js 8 verwenden, können Sie in diesen Ergebnissen auch die Javascript-Leistung bei aktiviertem --turbo --ignition-Parameter sehen.

Kontext

Obwohl V8 die von Node.js verwendete Standard-JavaScript-Engine ist, bietet Node.js eine gemeinsame Plattform, die es Entwicklern ermöglicht, verschiedene JavaScript-Engines auszuwählen.

Die Veröffentlichung von Node.js 8 ist sehr aufregend und ein großes Ereignis innerhalb der Community. Die Plattform verfügt bereits über eine ganze Reihe neuer Funktionen. Darüber hinaus sind Entwickler vor allem auf die Leistung bedacht.

Zu wissen, welche JavaScript-Engine für die Ausführung Ihrer Anwendung am besten geeignet ist, wird eine sehr nützliche Fähigkeit sein. In diesem Artikel betrachten wir die Leistungsvor- und -nachteile verschiedener Versionen von V8 und ChakraCore.

Wie

Um Benchmarks zwischen verschiedenen Node.js-Versionen zu vergleichen, habe ich 35 repräsentative JavaScript-Codemuster ausgewählt. Die meisten davon stammen aus Colin Ihrigs „Will It Optimize“-Repo. Diese Muster wurden im vorherigen Artikel besprochen (Optimieren Sie Ihre Node-App, indem Sie einfach Node.js aktualisieren).

Für jedes Muster wurde jede unterschiedliche Version von Node.js 10 Mal, 100 Mal, 1000 Mal, 10.000 Mal und 10.000 Mal ausgeführt. Durch die Aktivierung dieses Codes können wir verstehen, wie jede Engine allgemeine Laufzeitoptimierungen und Hot-Function-Optimierungen durchführt.

Der Benchmark berücksichtigt nicht die Anzahl der Garbage Collection (GC)-Ereignisse. Dies bedeutet, dass die Ergebnisse des Experiments unterschiedlich sein können, wenn der jedem Prozess zugewiesene Speicher geändert wird.

Ergebnisse

Wählen Sie die beste JS-Engine für Ihre Node-Anwendung

Die vollständigen Testergebnisse können Sie auf

dieser Seite einsehen. Durch die Analyse dieses Ergebnisses können wir erkennen, dass die Node.js-Version von ChakraCore langsamer ist als die V8-basierte Version.

Außerdem wird V8 in den meisten Fällen mit der Zeit immer effizienter. Die Optimierungsarchitektur für Zündung und Turbofan verbessert die Leistung erheblich. Node.js 8 wird mit V8 5.8 veröffentlicht, ist aber standardmäßig nicht aktiviert. Zukünftige Versionen von Node.js werden mit V8 5.9 (und möglicherweise 5.6) mit aktivierter Zündung und Turbofan verfügbar sein.

Fazit

Dieser Benchmark hat viel Spaß gemacht und ich habe vor, in Zukunft weitere Node.js-Versionen und mehr Codemuster hinzuzufügen. Als Node.js-Ingenieur bei Sqreen liegt mir die Leistung sehr am Herzen.

(Anmerkung: Später gibt es auch 4-End-Inhalte, bei denen es sich größtenteils um Anzeigen des ursprünglichen Autors handelt und daher nicht übersetzt werden)

Abschließend empfehle ich dieses leistungsstarke, vom Autor entwickelte Tool zum Vergleich der Leistungsvisualisierung: Auswahl die beste JS-Engine für die Leistung Ihrer Node-App Und mein Vortrag: Front-End-Programmierer sollten über einige V8-Kenntnisse verfügen.

Englische Originaladresse: https://blog.sqreen.com/javascript-engine-performance/

Weitere Programmierkenntnisse finden Sie unter: Programmierunterricht! !

Das obige ist der detaillierte Inhalt vonWählen Sie die beste JS-Engine für Ihre Node-Anwendung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Wofür ist NodeJS geeignet?Nächster Artikel:Wofür ist NodeJS geeignet?