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.

Anzeige

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.

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.


Jacques de... 19. Feb 2013

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

Kommentieren



Anzeige

  1. Informatiker/in
    Lechwerke AG, Augsburg
  2. Trainee (m/w) für Telematik-Anwendungen im After Sales
    Daimler AG, Stuttgart
  3. Java Entwickler (m/w)
    Siemens AG, Erfurt
  4. Business Analyst / Projekt Manager (m/w)
    Parts Europe GmbH, Wasserliesch bei Trier

 

Detailsuche


Folgen Sie uns
       


  1. Vic Gundotra

    Chef von Google Plus verlässt das Unternehmen

  2. Quartalsbericht

    Amazon weiter mit hohem Umsatz und etwas Gewinn

  3. Quartalsbericht

    Microsofts Gewinn und Umsatz fallen

  4. Element

    Schenkers Windows-Tablet ab 350 Euro - aber ohne Tastatur

  5. Epic Games

    Unreal Engine 4.1 mit Zugriff auf Konsolen-Quellcode

  6. Heartbleed-Bug

    Techfirmen zahlen Millionen für Open-Source-Sicherheit

  7. Sofortlieferung

    Base liefert Smartphone noch am gleichen Tag

  8. Leica T

    Teure Systemkamera mit Touchscreen

  9. The Elder Scrolls Online

    Inhaltserweiterung und Goldfarmer

  10. Sensabubble

    Display aus duftenden Seifenblasen



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Digitalkamera: Panono macht Panoramen im Flug
Digitalkamera
Panono macht Panoramen im Flug

Wenn Jonas Pfeil ein Panorama aufnimmt, stellt er nicht Kamera, Stativ und Panoramakopf auf, sondern wirft einen Ball in die Höhe. Um das Panorama anschließend zu betrachten, hantiert er mit einem Tablet. Der Berliner hat Golem.de seine Entwicklung erklärt.

  1. Lytro Illum Neue Lichtfeldkamera für Profis
  2. Nachfolger von Google Glass Google patentiert Kontaktlinsen mit Kameras
  3. Pentax 645Z Mittelformatkamera mit 51 Megapixeln und ISO 204.800

Windows XP ade: Linux ist nicht nur ein Lückenfüller
Windows XP ade
Linux ist nicht nur ein Lückenfüller

Wenn der Support für Windows XP ausläuft, wird es dringend Zeit, nach einer sicheren und vor allem kostenlosen Alternative zu suchen. Linux ist dafür bestens geeignet. Bleibt nur noch die Qual der Wahl.

  1. Freedesktop-Summit Desktops erarbeiten gemeinsam Wayland und KDBus
  2. Open Source Linux 3.15 startet in die Testphase
  3. Linux-Kernel LTO-Patch entfacht Diskussion

First-Person-Walker: Wie viel Gameplay braucht ein Spiel?
First-Person-Walker
Wie viel Gameplay braucht ein Spiel?

Walking-Simulator-Spiele nennen sie die einen, experimentelle Spiele die anderen. Rainer Sigl hat einen neuen Begriff für das junge Genre der atmosphärisch dichten Indie-Games erfunden: First-Person-Walker - Spiele aus der Ich-Perspektive mit wenig Gameplay.

  1. Flappy 48 Zahlen statt Vögel
  2. Deadcore Indiegames-Turmbesteigung für PC, Mac und Linux
  3. A Maze 2014 Tanzen mit der Perfect Woman

    •  / 
    Zum Artikel