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)

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. Medical Documentalist Pharmacovigilance (m/w)
    BERLIN-CHEMIE AG, Berlin
  2. IT-Architekt Engineering für das Team Enterprise Architecture Management & Governance
    Daimler AG, Böblingen
  3. Helpdesk & Level 2 Support Analyst (m/w)
    Universal Music Entertainment GmbH, Berlin
  4. Big Data Entwickler Innovation Lab (m/w)
    über HRM CONSULTING GmbH, Raum Frankfurt am Main

 

Detailsuche


Top-Angebote
  1. NEU: 100 EUR Rabatt auf das Samsung Galaxy S6/S6 Edge 128GB
    mit dem Gutscheincode 100S6GB128
  2. TOP-TIPP: Amazon-Gutschein im Wert von 40€ kaufen und 10€ geschenkt bekommen
    (Achtung: Anscheinend sind nicht alle User für die Teilnahme berechtigt)
  3. NEU: Blu-ray Filme reduziert
    (u. a .Into the Wild 8,97€, Black Hawk Down 8,97€, Act of Valor 7,99€)

 

Weitere Angebote


Folgen Sie uns
       


  1. Bundesverkehrsministerium

    Schnelle E-Bikes sollen auf Radwegen fahren

  2. Oneplus-One-Nachfolger

    Neues Oneplus Two wird ab 340 Euro kosten

  3. Spionagesoftware

    Der Handel des Hacking Teams mit Zero-Days

  4. In eigener Sache

    Preisvergleich bei Golem.de

  5. Akademy 2015

    Plasma Mobile hilft KDE bei der Wayland-Umsetzung

  6. Arrow Launcher ausprobiert

    Der Android-Launcher von Microsoft

  7. Bug bei Notebooks mit Intel-Chips

    Zehn Prozent weniger Akkulaufzeit mit Windows 10

  8. SE370

    Samsungs neue Displays laden Smartphones drahtlos auf

  9. Microsoft

    Die Neuerungen von Windows 10

  10. Linux-Distributionen

    Opensuse Leap 42.1 erhält aktuellen Linux-Kernel 4.1



Haben wir etwas übersehen?

E-Mail an news@golem.de



Kepler-452b: Die "zweite Erde", die schon wieder keine ist
Kepler-452b
Die "zweite Erde", die schon wieder keine ist
  1. Weltraumteleskop Kepler entdeckt Supererde in der habitablen Zone

Pixars Inside Out im Dolby Cinema: Was blenden soll, blendet auch
Pixars Inside Out im Dolby Cinema
Was blenden soll, blendet auch
  1. Ultra HD Blu-ray Es geht bald los mit 4K-Filmen auf Blu-ray

Neue WLAN-Router-Generation: Hohe Bandbreiten mit zweifelhaftem Nutzen
Neue WLAN-Router-Generation
Hohe Bandbreiten mit zweifelhaftem Nutzen
  1. EA8500 Linksys' MU-MIMO-Router kostet 300 Euro
  2. Aruba Networks 802.11ac-Access-Points mit integrierten Bluetooth Beacons
  3. 802.11ac Wave 2 Neue Chipsätze für die zweite Welle von ac-WLAN

  1. Re: Wie versorgen sie eigentlich die OLED mit...

    Spaghetticode | 07:45

  2. Re: Nicht zu vergessen die TCPA/Palladium...

    Niaxa | 07:44

  3. Re: Tippfehler bei Auflösung?

    tk (Golem.de) | 07:42

  4. Re: noch ein paar mehr Absätze

    exxo | 07:39

  5. Re: Es gibt zu viele Idioten in diesem Land

    Niaxa | 07:39


  1. 07:48

  2. 05:00

  3. 18:15

  4. 16:44

  5. 15:15

  6. 14:45

  7. 13:04

  8. 12:40


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel