パスワードを忘れた? アカウント作成
10398694 story
Firefox

FirefoxにおけるJavaScriptの実行速度、C++にまた一歩迫る 80

ストーリー by hylom
asm.jsは楽しそうだ 部門より
あるAnonymous Coward 曰く、

Firefoxでは特定のJavaScriptコードを高速に実行する「asm.js」という仕組みがある。高速とは言えども、今年頭の時点ではネイティブコードの半分程度の速度でしか実行できなかったのだが、コード翻訳ツールおよびJavaScriptエンジンの最適化を進めた結果、現在ではネイティブコードと比べて1.5倍遅い(同じ処理の実行に1.5倍の時間がかかる)程度にまで改善が進んだそうだ(Mozilla Hacksマイナビニュース)。

最適化は多くの局面で行われたとのことだが、一例としてあげられているのは浮動小数点演算で、64ビットのdouble型演算の代わりに、可能な限り32ビットのfloat型の演算を使用することで、大幅にその演算速度が向上したという。

この方法はほかのブラウザのJavaScript実行環境にも適用可能で、今後さらにほかのブラウザでの実行速度が高速になる可能性があるとのこと。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • asm.jsはGCも全くせずAOTでコンパイルしてるわけだから、あっそうとしか思えん…
    時間を掛けてコンパイルできない分、凝った最適化が出来無い中での結果なんで、そこは凄いなと思う。

    ただ、これでWebGL使って全画面のアプリを作れば、HTMLとか全て無視した普通のアプリが動いちゃうんだろうな。
    まぁネイティブアプリが簡単にマルチプラットフォーム化できればありがたいけど。
    • あなたこそ少し誤解している風に見受けられます。

      asm.jsは普通に人が書いたJavaScriptを実行する為のエンジンは使用していません。
      まったく別のエンジンを使用して動かしているので、一般的なJSエンジンの挙動はしないと思われます。
      そもそも、CやC++から変換したコードの実行が主なのでGCする必要がないのに、あえて速度を落としてまで
      するんですかね?

      > JSはネイティブに匹敵する速度
      いや、全然違います…
      asm.jsはその名の通りアセンブラ代わりに使っているだけです。
      (ただ、Firefox以外のエンジンでも普通に動かせるところが画期的ですが)
      で、AOTのコンパイラが実行時に全部機械語に変換して実行しているだけなんです。

      親コメント
    • 3個のコメント が現在のしきい値以下です。
typodupeerror

犯人はmoriwaka -- Anonymous Coward

読み込み中...