Abo
  • Services:

Firefox: Spidermonkey beschleunigt Javascript-Generatoren im Firefox

Dank einiger Optimierungen an der Spidermonkey-Engine sind Javascript-Generatoren im Firefox nun über zwanzigmal so schnell wie vorher. Damit ist der Code wieder gleichauf mit Googles V8.

Artikel veröffentlicht am ,
Javascript-Generatoren in Spidermonkey nun so schnell wie in V8
Javascript-Generatoren in Spidermonkey nun so schnell wie in V8 (Bild: Mozilla)

Die in der Spezifikation von Ecmascript 6 definierten Generator-Konstrukte werden von der Javascript-Engine des Firefox, Spidermonkey, 22-mal so schnell ausgeführt wie bisher, wie der Entwickler Andy Wingo in seinem Blog schreibt. Über Generatoren lässt sich die Funktionsausführung zwischenzeitlich unterbrechen, was etwa beim Verarbeiten von Live-Datenströmen hilfreich sein kann.

Stellenmarkt
  1. ING-DiBa AG, Nürnberg
  2. Radeberger Gruppe KG, Frankfurt am Main

Eine erste Implementierung dieser ist durch ein Sponsoring von Bloomberg bereits seit Firefox 26 in Spidermonkey enthalten. Doch bisher seien diese nur durch die unterste und langsamste Schicht der Engine ausgeführt worden, was Wingo mit der Wahl der eher einfachen Implementierung der Generatoren begründet. Diese ließe sich aber nicht vom JIT-Compiler verwenden.

Unterbrochene Generatoren werden nun als "Schnappschuss des Status eines Aufrufrahmens (Stackframe), anstatt als Aufrufrahmen selbst" repräsentiert. Dafür haben die Entwickler zunächst Optimierungen vorgenommen, um diesen Schnappschuss zu verkleinern und schließlich die Generatoren auf dem "normalen Interpreter-Stack" zu implementieren. Der Maintainer des JIT-Teils in Spidermonkey Jan de Mooij übernahm letztlich noch ausstehende Patches und verbesserte weiter.

So werden die Generatoren JIT-kompiliert, was in einfachen Benchmarks zu der genannten Beschleunigung führen kann. Den Angaben von Wingo zufolge ist Spidermonkey damit nun wieder ähnlich schnell wie Googles V8 beim Ausführen dieses Funktionstyps.

Das Verhalten der Generatoren kann in vielen Sprachen implementiert werden, ohne dass dafür bestimmte Funktionstypen notwendig sind, auch in Javascript. Die Implementierung in Ecmascript 6 ist deshalb als syntaktischer Zucker zu betrachten, der das Schreiben von dem notwendigen Quelltext etwas vereinfacht. Das dafür notwendige Schlüsselwort function* erinnert wegen des Sternchens an einen Zeiger in anderen Sprachen, ist mit diesen aber nicht vergleichbar, da die Sprache Javascript über keine Zeiger verfügt.



Anzeige
Hardware-Angebote
  1. (reduzierte Überstände, Restposten & Co.)
  2. 449€

TheUnichi 17. Nov 2014

22% von 3 sind 0.66, der Unterschied zwischen 3 und 3.66 ist alles andere als ein "gutes...

irisquelle 16. Nov 2014

Ich habe ja keine Fundamentalkritik an Firefox geübt, sondern lediglich die Prioritäten...

Lala Satalin... 15. Nov 2014

Für mich muss ein Browser nicht nur alle Funktionen bieten, sondern auch schnell sein...


Folgen Sie uns
       


God of War (2018) - Fazit

Viele langjährige Fans von Kratos dürften beim neuen God of War erst mal vom Glauben abfallen. Der Neue hat aber auf eigenständige Art ebenfalls das Zeug zum Kulthelden.

God of War (2018) - Fazit Video aufrufen
Datenschutz: Der Nutzer ist willig, doch die AGB sind schwach
Datenschutz
Der Nutzer ist willig, doch die AGB sind schwach

Verbraucher verstehen die Texte oft nicht wirklich, in denen Unternehmen erklären, wie ihre Daten verarbeitet werden. Datenschutzexperten und -forscher suchen daher nach praktikablen Lösungen.
Ein Bericht von Christiane Schulzki-Haddouti

  1. Denial of Service Facebook löscht Cybercrime-Gruppen mit 300.000 Mitgliedern
  2. Vor Anhörungen Zuckerberg nimmt alle Schuld auf sich
  3. Facebook Verschärfte Regeln für Politwerbung und beliebte Seiten

Oracle vs. Google: Dieses Urteil darf nicht bleiben
Oracle vs. Google
Dieses Urteil darf nicht bleiben

Im Fall Oracle gegen Google fällt ein eigentlich nicht zuständiges Gericht ein für die IT-Industrie eventuell katastrophales Urteil. Denn es kann zu Urhebertrollen, Innovationsblockaden und noch mehr Milliardenklagen führen. Einzige Auswege: der Supreme Court oder Open Source.
Eine Analyse von Sebastian Grüner

  1. Oracle gegen Google Java-Nutzung in Android kein Fair Use

Virgin Galactic: Spaceship Two fliegt wieder - trotz tödlicher Unfälle
Virgin Galactic
Spaceship Two fliegt wieder - trotz tödlicher Unfälle

Die Entwicklung des Raketenflugzeugs für Touristenflüge in den Weltraum hat schon vier Menschenleben gekostet. Vergangenen Donnerstag hat Virgin Galactic die Tests mit Raketentriebwerk wieder aufgenommen.
Von Frank Wunderlich-Pfeiffer


      •  /