Abo
  • IT-Karriere:

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. Ober Scharrer Gruppe GmbH, Fürth
  2. A. Menarini Research & Business Service GmbH, Berlin

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. täglich neue Deals bei Alternate.de
  2. 199,90€
  3. 529,00€ (zzgl. Versand)

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
       


Wolfenstein Youngblood angespielt

Zwillinge im Kampf gegen das Böse: Im Actionspiel Wolfenstein Youngblood müssen sich Jess und Soph Blazkowicz mit dem Regime anlegen.

Wolfenstein Youngblood angespielt Video aufrufen
Faire IT: Die grüne Challenge
Faire IT
Die grüne Challenge

Kann man IT-Produkte nachhaltig gestalten? Drei Startups zeigen, dass es nicht so einfach ist, die grüne Maus oder das faire Smartphone auf den Markt zu bringen.
Von Christiane Schulzki-Haddouti

  1. Smartphones Samsung und Xiaomi profitieren in Europa von Huawei-Boykott
  2. Smartphones Xiaomi ist kurz davor, Apple zu überholen
  3. Niederlande Notrufnummer fällt für mehrere Stunden aus

Google Maps: Karten brauchen Menschen statt Maschinen
Google Maps
Karten brauchen Menschen statt Maschinen

Wenn Karten nicht mehr von Menschen, sondern allein von Maschinen erstellt werden, erfinden diese U-Bahn-Linien, Hochhäuser im Nationalpark und unmögliche Routen. Ein kurze Liste zu den Grenzen der Automatisierung.
Von Sebastian Grüner

  1. Kartendienst Google bringt AR-Navigation und Reiseinformationen in Maps
  2. Maps Duckduckgo mit Kartendienst von Apple
  3. Google Maps zeigt Bikesharing in Berlin, Hamburg, Wien und Zürich

Zephyrus G GA502 im Test: Das Gaming-Notebook, das auch zum Arbeiten taugt
Zephyrus G GA502 im Test
Das Gaming-Notebook, das auch zum Arbeiten taugt

Mit AMDs Ryzen 7 und Nvidia-GPU ist das Zephyrus G GA502 ein klares Gaming-Gerät. Überraschenderweise eignet es sich aber auch als mobiles Office-Notebook. Das liegt an der beeindruckenden Akkulaufzeit.
Ein Test von Oliver Nickel

  1. Vivobook (X403) Asus packt 72-Wh-Akku in günstigen 14-Zöller
  2. ROG Swift PG35VQ Asus' 35-Zoll-Display nutzt 200 Hz, HDR und G-Sync
  3. ROG Gaming Phone II Asus plant neue Version seines Gaming-Smartphones

    •  /