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

Safari、新JavaScriptエンジンSquirrelFishによりJavaScript高速化 24

ストーリー by Acanthopanax
栗鼠魚 部門より

あるAnonymous Coward 曰く、

Safariの基礎をなしているWebKitに新JavaScriptエンジンのSquirrelFishが組みこまれることにより、JavaScriptのパフォーマンスが飛躍的に向上、Safari3との比較では平均して4倍高速との結果がでているとのこと(マイコミジャーナルより)。SquirrelFishはJavaScriptを中間形式に変換し、実行時に高速実行可能なコードに変換して走らせることにより高速化を実現する。Firefox4でも同様のTamarinが組み込まれる予定で、JavaScriptはウェブアプリケーションの大黒柱として新たな段階に突入するとみられる。

実行速度は速くなるだろうが、結果として長いスクリプトが書かれ、ロード時間が延びたりしないか気になるところだ。

Surfin' Safariブログ記事“Announcing SquirrelFish”もご参考に。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • >JavaScriptはウェブアプリケーションの大黒柱として新たな段階に突入するとみられる

    そうじゃなくて「JavaScriptがウェブアプリケーションの大黒柱として新たな段階に既に突入している」からこそ、こぞって開発を競ってるんだろうね。
    --
    妖精哲学の三信
    「だらしねぇ」という戒めの心、「歪みねぇ」という賛美の心、「仕方ない」という許容の心
  • そしたらWebが凄く軽くなりそうですね。
    Googleとかのアプリも快適になるだろうなあ。

    しかしいままで中間形式に変換してなかったのが逆に驚きだったりして。
    FlashとかのActionScript(ECMA-262拡張)はなにかやってるのかな。

    個人的には最近Processing [processing.org]というJavaベースの「電子アートとビジュアルデザインのためのプログラミング言語 [wikipedia.org]」で書いたコードをJavaScript上で動かすProcessing.js [ejohn.org]というライブラリで遊んでいるので、そういう意味でも高速化は大歓迎です。
    (解説はこちらがわかりやすいです→ ブラウザでお絵描きプログラミング! Processing.js 登場! [hatena.ne.jp])
    • by Anonymous Coward
      JITとかをあまり強化すると、
      今度は動的言語としての旨みが薄れませんかね?
      「ここはいつ動的に差し替えられるか判らん」と備えるのを「諦める」のがJITですから。

      単に高速にするだけならコンパイル言語で。

      #という目的でJavaAppletは出現したはずだったのだが…一体何処でどう間違えたのやら…
      • JRubyなどの例を考えるとLLの利点を損なわずをJITで動かすのもなんとかなるんじゃないかなあと思うのですが甘いかなあ。
        ほんとはおっしゃるとおり、JavaAppletを使うのが正しいとは思うのですが、
        ・プラグインを入れないと使えない(IEではプラグインをいれないと古い仕様のVMしか入っていない)
        ・起動に時間がかかる
        といったことから避けられている節がありますね。

        そんなことから、本来実体はJavaAppletであるprocessingをわざわざJavaScript上で動かしてみたりするわけで・・・

        次のJava1.7ではJavaAppletの復権を狙っているようで、起動を高速化するなどいろいろ改良していくようです(起動高速化手法は、常に常駐しておくということなのですが・・・むー)。
        でも、なんだかんだいって不特定多数向けのサービスを作るには、いまはJavaScriptかFlashですよねえ。
        JavaAppletがんばれ!超がんばれ!
        親コメント
        • by Anonymous Coward
          >次のJava1.7ではJavaAppletの復権を狙っているようで、起動を高速化するなどいろいろ改良していくようです
          >(起動高速化手法は、常に常駐しておくということなのですが・・・むー)。

          一番大きいのは、Appletのプロセスがブラウザから分離されることかと、
          ただ、それは、Java1.6のアップデートで狙っていますよ。6u10ビルドのベータが
          公開されていてそれでは、新しいプラグインの利用が可能いなっています。

          起動高速化は、prefetchが使われていて
          あとは、肥大化したライブラリのモジュール化を行い
          スリムにするという動きもあります。

          言語間の戦いというより、言語のラインタイム環境の争いになってきた昨今、
          なかなか面白い動きです。
      • by sync.neo (16796) on 2008年06月05日 2時49分 (#1356734)
        これは問題にはならないと思いますよ。
        私は JIT のプロじゃないんですが、以前 Tcl が ver. 7.x から 8.x にメジャーアップデートして、バイトコードコンパイラが採用された時に、自分のコードの実行速度をかなり詳細に追いかけたことがあります。この場合、コードの動的な部分が実行される際には、その部分だけ自動的に再コンパイルされることが分かりました。だから動的なコードは、静的なものに比べて速度的なメリットは少々失われますが、LL言語の「旨味」をすっかり諦めることにはならないと思います。速度が必要な時には静的なコードに書き直してチューンアップする余地は十分にあるのですから、JITによるデメリットはとても小さいと思いますよ。
        親コメント
    • by Anonymous Coward
      FlashのActionScript 3.0は、Flash Player 9の時代から中間形式によるプリコンパイルとなっています。
      それこそ今回と同じように、演算パフォーマンスが10倍アップとか宣伝してます。

      http://journal.mycom.co.jp/articles/2006/06/20/flash/001.html [mycom.co.jp]

      ActionScriptも、タイムラインの制御とかスプライトの移動程度やってる分には困らないのですが、FlexのようにモダンなUIスイートを全部実装してActionScriptで動かすような世界でも使われるようになってるので、この辺は一応頑張ってるようです。
    • by Anonymous Coward
      Firefox 4 への搭載が計画されている Tamarin は JIT 付きでございます。
      スクリプトから生成されたバイトコードをインタプリタで実行しつつ
      プロファイルを取って、それを元に JIT でネイティブなコードに変換します。
      (実際には中間処理が続々と入っていて、multi-pass 状態みたいですが)

  • 方はいるので、JavaScript高速化は楽しみだなあ。
    例えばespyさん [srad.jp]の質点の運動で遊ぼうシミュレータ [espilab.ddo.jp]とか。

    # それだけだけどid
    --
    /.configure;oddmake;oddmake install
  • by Anonymous Coward on 2008年06月04日 22時40分 (#1356597)
    先日Safari3でprocessing.js [ejohn.org]のサイトで遊んでいたら、とてつもなくCPUリソースを
    喰っており、マシンが火を吹くように熱くなってた。

    まぁ適材適所、つまりはprocessing.js全般を動かすにはまだまだ
    改善が必要ってことなんでしょうけど。
  • by Anonymous Coward on 2008年06月04日 21時50分 (#1356564)
    Dashboardが軽くなってくれればいいんだけどなあ
typodupeerror

クラックを法規制強化で止められると思ってる奴は頭がおかしい -- あるアレゲ人

読み込み中...