Abo
  • Services:

Mozilla: asm.js soll Javascript deutlich schneller machen

Mit asm.js soll Javascript je nach Situation zwei- bis fünfmal schneller ausgeführt werden, als das in den derzeit schnellsten Javascript-Engines möglich ist. Der für asm.js geschriebene Code läuft allerdings auch in älteren Browsern.

Artikel veröffentlicht am ,
Javascript soll mit asm.js halb so schnell sein wie nativer Code.
Javascript soll mit asm.js halb so schnell sein wie nativer Code. (Bild: Alon Zakai)

Die Mozilla-Entwickler David Herman, Luke Wagner und Alon Zakai haben mit asm.js einen Ansatz entwickelt, mit dem sich die Ausführung von Javascript drastisch beschleunigen lässt. Gedacht ist asm.js vor allem für Javascript-Programme, die mit Hilfe von Compilern wie beispielsweise Emscripten aus anderen typensicheren Sprachen übersetzt werden.

Stellenmarkt
  1. BWI GmbH, Nürnberg, München, deutschlandweit
  2. SP_Data GmbH & Co. KG, Herford

Konkret handelt es sich bei asm.js um ein Javascript-Subset, so dass sich für asm.js geschriebener Code in jeder Javascript-Engine ausführen lässt. Neue Javascript-Engines, die auf asm.js aber vorbereitet sind, sollen in der Lage sein, den entsprechenden Code deutlich schneller auszuführen. Die Entwickler gehen davon aus, dass asm.js-Programme etwa halb so schnell sind wie nativer Code, der in C/C++ geschrieben wurde. Damit soll Javascript mit asm.js in etwa so schnell sein wie Java und C#.

  • asm.js im Benchmark-Vergleich (Bild: Alon Zakai)
  • asm.js im Benchmark-Vergleich (Bild: Alon Zakai)
asm.js im Benchmark-Vergleich (Bild: Alon Zakai)

Um diesen Geschwindigkeitssprung zu erreichen, führt asm.js strikte Typen für Integer und Floats sowie einen virtuellen Heap ein, der durch ein Typed Array repräsentiert wird. Integer-Variablen werden nach dem aktuellen Entwurf mit dem Anhang "|0" versehen, Floats wird ein "+" vorangestellt. Die Einhaltung der strikten Typen kann beim Parsen des Javascirpt-Codes überprüft werden, vorausgesetzt, die Javascript-Engine wird mit "use asm"; dazu angewiesen.

Kann der Code durch asm.js validiert werden, kann die Javascript-Engine einen Ahead-of-Time-Compiler verwenden und sicher sein, dass sich die Typen während der Laufzeit nicht verändern. Auch eine Garbage-Collection ist nicht notwendig, da sich die entsprechenden Programme über den virtuellen Heap selbst um die Speicherverwaltung kümmern.

Das ermöglicht es, den entsprechenden Javascript-Code letztendlich deutlich schneller auszuführen, setzt aber eine Javascript-Engine voraus, die auf asm.js vorbereitet ist. Mozilla arbeitet derzeit an einer entsprechenden Anpassung seiner Javascript-Engine.

Die asm.js-Entwickler räumen ein, dass die gewählte Syntax nicht sehr hübsch ist, das aber sei Compilern wie Emscripten oder Mandreel egal. Dennoch erwägen sie, noch eine besser lesbare Syntax einzuführen.

Der große Vorteil von asm.js gegenüber Ansätzen wie Google Native Client soll darin bestehen, dass der für asm.js vorgesehene Code auch von bestehenden Javascript-Engines ohne Anpassungen ausgeführt werden kann. Und um die Vorteile von asm.js zu nutzen, bedarf es nur kleiner Anpassungen an den Engines. Googles Native Client muss hingegen vom Browser explizit unterstützt werden, was derzeit nur bei Chrome der Fall ist.

Wer asm.js heute schon ausprobieren will, benötigt dazu eine Entwicklerversion von Firefox aus dem Zweig Odinmonkey. Emscripten kann mit dem Schalter "ASM_JS=1" dazu gebracht werden, den passenden Code zu erzeugen.

Geht es nach Emscripten-Entwickler Alon Zakai, könnte asm.js auch die Basis sein, um VMs für andere Sprachen, beispielsweise Java und C#, im Browser zur Verfügung zu stellen, so dass auch Java- und C#-Code auf diesem Weg im Browser ausgeführt werden kann.

Details zu und der Entwurf einer Spezifikation von asm.js finden sich unter asmjs.org.



Anzeige
Top-Angebote
  1. (aktuell u. a. ADATA XPG GAMMIX D3 DDR4-3200 8 GB für 49,99€ + Versand)
  2. 229,99€
  3. (u. a. Plantronics RIG 800HS PS4/PC für 87€ und Indiana Jones - The Complete Adventures Blu-ray...
  4. (u. a. PSN Card 20€ für 17,99€, Assassin's Creed Odyssey für 24,99€ und Tropico 6 für 31...

Jacques de... 19. Feb 2013

Webstorm von Jetbrains soll sehr komfortabel sein. Zumal in neueren Versionen Sourcemaps...


Folgen Sie uns
       


Geräuschunterdrückung von drei ANC-Kopfhörern im Vergleich

Wir haben den neuen ANC-Kopfhörer von Audio Technica gegen die Konkurrenz von Bose und Sony antreten lassen. Im Video sind die Unterschiede bei der ANC-Leistung zwischen dem ATH-ANC900BT, dem Quiet Comfort 35 II und dem WH-1000XM3 deutlich hörbar.

Geräuschunterdrückung von drei ANC-Kopfhörern im Vergleich Video aufrufen
Anno 1800 im Test: Super aufgebaut
Anno 1800 im Test
Super aufgebaut

Ach, ist das schön: In Anno 1800 sind wir endlich wieder in einer heimelig-historischen Welt unterwegs - zumindest anfangs. Das neue Werk von Blue Byte fesselt dank des toll umgesetzten und unverwüstlichen Spielprinzips. Auch neue Elemente wie die Klassengesellschaft funktionieren.
Von Peter Steinlechner

  1. Ubisoft Blue Byte Anno 1800 erhält Koop-Modus und mehr Statistiken
  2. Ubisoft Blue Byte Preload der offenen Beta von Anno 1800 eröffnet
  3. Systemanforderungen Anno 1800 braucht schnelle CPU

Days Gone angespielt: Zombies, Bikes und die Sache mit der Benzinpumpe
Days Gone angespielt
Zombies, Bikes und die Sache mit der Benzinpumpe

Mit dem nettesten Biker seit Full Throttle: Das Actionspiel Days Gone schickt uns auf der PS4 ins ebenso große wie offene Abenteuer. Trotz brutaler Elemente ist die Atmosphäre erstaunlich positiv - beim Ausprobieren wären wir am liebsten in der Welt geblieben.
Von Peter Steinlechner


    Jobporträt: Wenn die Software für den Anwalt kurzen Prozess macht
    Jobporträt
    Wenn die Software für den Anwalt kurzen Prozess macht

    IT-Anwalt Christian Solmecke arbeitet an einer eigenen Jura-Software, die sogar automatisch auf Urheberrechtsabmahnungen antworten kann. Dass er sich damit seiner eigenen Arbeit beraubt, glaubt er nicht. Denn die KI des Programms braucht noch Betreuung.
    Von Maja Hoock

    1. Struktrurwandel IT soll jetzt die Kohle nach Cottbus bringen
    2. IT-Jobporträt Spieleprogrammierer "Ich habe mehr Code gelöscht als geschrieben"
    3. Recruiting Wenn die KI passende Mitarbeiter findet

      •  /