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. Team Manager (m/w/d) Storage & Backup Solutions
    OEDIV KG, Bielefeld
  2. Software Engineer - Expert Solution Management (m/w/d)
    Vodafone GmbH, Berlin, Eschborn
Detailsuche

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.

Golem Akademie
  1. Kubernetes Dive-in-Workshop: virtueller Vier-Halbtage-Workshop
    25.–28. Januar 2022, Virtuell
  2. Penetration Testing Fundamentals: virtueller Zwei-Tage-Workshop
    17.–18. Januar 2022, Virtuell
Weitere IT-Trainings

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.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


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...



Aktuell auf der Startseite von Golem.de
Amazon, Apple, Google
Die EU macht ernst mit der Plattformregulierung

Die stärkere Regulierung von großen IT-Plattformen rückt näher. Die EU-Mitgliedstaaten unterstützen weitgehend die Pläne der EU-Kommission.
Ein Bericht von Friedhelm Greis

Amazon, Apple, Google: Die EU macht ernst mit der Plattformregulierung
Artikel
  1. Studie: Jede siebte Onlinebestellung wird zurückgeschickt
    Studie
    Jede siebte Onlinebestellung wird zurückgeschickt

    In einer Umfrage des Branchenverbandes Bitkom gaben Handelsunternehmen an, dass die steigenden Retouren das Geschäft belasteten. Sie hoffen auf KI.

  2. S9U fürs Homeoffice: Samsung stellt 49-Zoll-Ultrawide-Monitor mit KVM-Switch vor
    S9U fürs Homeoffice
    Samsung stellt 49-Zoll-Ultrawide-Monitor mit KVM-Switch vor

    Der S9U ist Samsungs neuer 32:9-Bildschirm. Er integriert USB-C mit 90 Watt Power Delivery und einen KVM-Switch. Das Panel schafft 120 Hz.

  3. XTurismo: Fliegendes Jetski aus Japan für knapp 600.000 Euro
    XTurismo
    Fliegendes Jetski aus Japan für knapp 600.000 Euro

    Wo auch immer man sie fliegen dürfen wird, Multikopter für den Personentransport sind im Kommen. Dieses Flugobjekt stammt aus Japan.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • WD Black SN750 1TB 89,90€ • Acer 27" FHD 165Hz 191,59€ • PS5 Digital + 2. Dualsense + 100€-Amazon-Gutschein mit o2-Vertrag sofort lieferbar • Switch OLED + Metroid Dread 399€ • Kingston 1TB PCIe 69,90€ • GTA Trilogy Definitive 59,99€ • Alternate (u. a. Apacer 960GB SATA 82,90€) [Werbung]
    •  /