asm.js im Geschwindigkeitscheck
Kommentare

Gerade für Spiele-Engines wie Unity 3D und Unreal spielt asm.js eine wichtige Rolle – immerhin ermöglicht es die Umwandlung von C/C++-Code in JavaScript und funktioniert dabei auch noch in jedem Browser ohne Plug-ins. Performance spielt dabei eine wichtige Rolle, vor allem, weil jeder Browser dank verschiedener JavaScript-Engines auch unterschiedliche Performance-Charakteristiken zeigt.

Anlässlich der Veröffentlichungen von Unity 5 und Unreal Engine 4.7 zeigt Alon Zakai in einem Blogpost im Mozilla-Entwickler-Blog, wie es um die schnelle Ausführung von asm.js in den verschiedenen Browsern steht.

asm.js in Chrome und Safari

Gute Nachrichten für Nutzer von asm.js: das JavaScript-Subset hat in den letzten Monaten deutliche Fortschritte hinsichtlich der Ausführungsgeschwindigkeit gemacht – und zwar in jedem der vier Major-Browser. So hat beispielsweise Chrome bereits in 2013 mit dem Release von Octane 2.0 eine neue JavaScript-Benchmark-Suite veröffentlicht, die auch ein neues asm.js-Benchmark enthielt.

Mit TurboFan implementierte Chrome zudem einen neuen Work-in-Progress-Optimierungs-Compiler für Chromes JavaScript Engine v8. Zwar kann TurboFan bisher noch nicht für jede Art von JavaScript-Content genutzt werden, ist ab Chrome 41 aber zumindest für asm.js aktiviert. Dadurch lassen sich deutlich höhere Geschwindigkeiten bei den Benchmarks erreichen.

Auch bei Safari wurde mit Fourth Tier LLVM (FTL) erst im vergangenen Jahr ein neuer JIT-Compiler bei Safaris JavaScript-Engine JavaScriptCore eingeführt, mit dem für eine Beschleunigung gesorgt werden soll. Ebenso zeigt auch die Einführung des neuen JavaScript-Benchmarks JetStream, dass die Optimierung von asm.js-Content eine wichtige Rolle spielt.

Performanceverbesserung im IE und Firefox

Bisher ließ die Performance von asm.js im Internet Explorer ein wenig zu wünschen übrig. Mit der kommenden Windows-Version, Windows 10, soll sich das jedoch ändern. So sollen nicht nur deutliche Verbesserungen der asm.js-Workload im neuen IE vorgenommen, sondern gleichzeitig auch spezielle asm.js-Optimierungen implementiert werden, die die Performance des JavaScript-Subsets verbessern sollen.

Besonders deutlich werden die Vorteile der asm.js-Optimierung im Firefox, die vor allem von Optimierungen des Compiler-Backends und den neuen JavaScript- Features Math.fround und SIMD.js herrühren. Zwei Verbesserungen stechen dabei besonders ins Auge: zum einen ein neuer Register-Allocation-Algorithmus, zum anderen effektive Adressen-Optimierungen. Zudem tragen auch Ladezeitoptimierungen im Firefox zur verbesserten Performance bei.

Am Ende, so erklärt Alon Zakai, zählt aber vor allem, dass Applikationen möglichst gut und reibungslos funktionieren – und das zeigt sich am einfachsten in Real-World-Games. Dass asm.js dabei einen großen Sprung nach vorne gemacht hat, was die Performance angeht, ist zwar unbestreitbar, trotzdem gibt es natürlich noch viel Platz für weitere Verbesserungen, die nun nach und nach in der asm.js-Optimierung vorgenommen werden sollen.

Aufmacherbild: close up of automobile speedometer on blue von Shutterstock / Urheberrecht: cunaplus

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -