i-mobile
次へ下へ

Everyday Pieces ::

ありふれたカケラ::人生というジグソーパズルのピースたち

‘ゲーム’ カテゴリーのアーカイブ

12345次へ >>

asm.js

つぶやき, ゲーム, トピック, プログラム
公開日:2013年3月22日 / 更新日:2013年5月14日

Firefox22がasm.js採用でネイティブに近い実行速度まで高速化。
だそうです。

聞いたことなかったので、
「asm.js」って何ぞ?
と思ったわけですが、

JavaScriptプログラムをネイティブコード速度の2倍程度の実行時間で済むように最適化するJavaScriptサブセット

とのこと。

ベンチマーク的には以下の様な感じになるらしいです。
これはちょっとスゴイのかも、

[snap2376_m+]

[snap2377_m+]

こちらをざっと参照した感じでは、
どうやら静的型付けを導入することで高速化を図るっぽいようです。
int と double を使い分けできるようになる感じです。
バイナリを扱うような場合に高速化が期待できそうな気がします。

動的型付けなJavaScriptでは、
数値は全てdouble として扱われるようになってます。
(Typed Arrayとかあったりしますが使用は限定的)
整数で済むような場合でも倍精度浮動小数点数で処理されるので、
素直な実装ならそれなりにオーバーヘッドがあったりしそうですね。
asm.jsによって、こういうのとかが改善されるってことなのかな?
実装的には Typed Array をうまく使う感じっぽい。

具体的には、
“use asm”;
とか書いて宣言することで導入されるようです。

静的型付けの表記は以下のようにやるそうです。


i-mobile
上へ次へ