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

WebKitのJavaScriptエンジンを改良、スピードが従来の2倍に 30

ストーリー by Acanthopanax
倍速 部門より

pinbou 曰く、

本家/.の記事より。WebKit開発者サイトSurfin' Safariのブログエントリ"Introducing SquirrelFish Extreme"によると、WebKitに新世代のJavaScriptエンジンが導入された。このエンジン、SquirrelFish Extremeは、従来のSquirrelFishに比べ2倍の処理スピードを誇るという。ブログによれば、バイトコード最適化や(Google ChromeのJavaScriptエンジンV8におけるhidden class変換に似た)多相的インラインキャッシュ、コンテキストスレッデッドJITコンパイラ(ネイティヴコードを生成、ただし現時点ではx86プロセッサ向けのみ)といたテクニックの導入によってパフォーマンス向上が達成されたそうだ。SquirrelFish ExtremeはすでにWebKitの最新nightly buildでは利用可能で、ベンチマーク比較によるとV8よりも35%、MozillaのTraceMonkeyと比べると55%も速く、現時点で世界最速のJavaScriptエンジンとみなされるとのこと。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2008年09月21日 10時04分 (#1423581)
    遅いJavaScriptエンジンを使った古いブラウザじゃ、PCのスペックが十分足りてるのに、処理落ちやフリーズするWebサービスが出てくる予感。
    • 言いたいことはわかるけど、Webサービス [wikipedia.org]にJavaScriptエンジンは関係ないです。Webサービスの呼び出し側がJavaScriptで実装されてると言うなら、それはごく普通のWebサイトでしょうし…。

      自分もAjax満載なページを作っていますが、ロード時間がFirefoxだと1秒切るのに、IE6だと10秒以上かかるのを何とかしたい…IE7だと3秒なのか。
      親コメント
      • by Anonymous Coward
        ああ、そういう概念があるのか。知らなかった。

        ここでは、JavaScriptを駆使しまくった商業的なホームページという意味で、サービスは役務という意味で使いました。
    • 広告やらアクセス解析の外部サイトアクセスの待ち時間が際だって高く、せっかくのJSエンジン高速化の恩恵が全然得られていない事実に気づきガクーリする。 FireFox3 も Safari も速いなぁと思うのは、そういうのが無いページのような気がする。
      親コメント
  • 最速更新につぐ更新で (スコア:1, おもしろおかしい)

    by Anonymous Coward on 2008年09月21日 19時08分 (#1423817)
    そのうち「アセンブラで書くより、JavaScriptのほうが実行速度速いよ」という世界が来るのを期待(してどーする
    • by Anonymous Coward
      下手にアセンブラで書くより高級言語で書いた方が(コンパイラが賢い分)速かった
      ということが実際にあるので、そのうちそういうこともあるかもしれませんね。

      皆が皆、神がかったコードを書けるわけではないので、平均すれば
      「アセンブラで書くより、JavaScriptのほうが実行速度速いよ」
      という時代はわりとすぐ訪れるかも。
      • 「言語習得の難易度」と「アルゴリズム」がごっちゃになってませんか?

        > 下手にアセンブラで書くより高級言語で書いた方が(コンパイラが賢い分)速かった

        なんで、そんな下手なアセンブリを選択したのか...。
        # Compiler, Linker, 並列処理がどうこうとか色々あるでしょうが、
        # それらを踏まえてどちらが効率が良いか検討するべきかと。

        ただ、これは言語自体の難しさです。

        > 皆が皆、神がかったコードを書けるわけではないので、

        神がかったコードというのは、要はアルゴリズムの組み合せよね?
        # 「アルゴリズムの組み合せ」って変ですね。

        「C で書いたバブルソートO(n2)より perl で書いたマージソート(O(n log n))」の方が
        安定して速い事が期待できます。

        昨今は CPU/Memory/Disk 豊満な環境で作業できる事が多いので、
        (習得が容易な)高級言語を開発言語の選択肢に加える事が可能です。

        そんな時に、プログラマに必要とされるのは、
        アルゴリズムですし、データ構造です。

        というわけで、良書。
        アルゴリズムとデータ構造 (岩波講座 ソフトウェア科学) (単行本) [amazon.co.jp]
        さ!
        これで、あなたも PASCALIST!!!(あれ?)
        親コメント
        • >神がかったコードというのは、要はアルゴリズムの組み合せよね? それはちょっと違う。 同じアルゴリズムを使っても、より効率的な命令セットを自分で考えられるかどうかという話。昔の BBS とかで、あるアルゴリズムを実装するのにバイナリで何バイトまで小さく出来るかを争う遊びがあったけど、そういうレベルの話。見やすさなんか一切無視。確かに神がかったコード書く人は居たね。 8086 から 80286 の頃にアセンブラ書いてたけど、MS-C の吐き出すコードを見て「こりゃ、C コンパイラーに考えさせた方が早くて楽」(この場合は速いの意味も兼ねる)と悟った。それからは、アセンブラが必要そうな部分は C でコード書いて .asm のコードだけ使う方に方針転換w
          親コメント
      • すでにgccで一部行われているが…

        「インラインアセンブラ」でプログラムを書いてさえ、ゴリゴリとコンパイラに書き直される時代が…

        # で、最終的には「言語?関係ないよ。どうせJITが書き直してくれる」。
        --
        fjの教祖様
        親コメント
      • ニモニックの中には高級言語とは発想の違う命令があるから、言うなればコンパイラが最適化できないようなコードもごく一部ではあるけど存在するはず。古い話になるけどi386のビットスキャン命令とか。最近のマルチメディア系の命令はインテルがコンパイラ作ってくれてるのかな?

        あと今後の複数コア時代にJavaScriptは対応できないと思う。並列化しやすい概念を持った新たなスクリプト言語がメジャーになればいいのだけど。
        親コメント
      • by Anonymous Coward
        JITもいろいろと研究されていますし、一度コンパイルしてしまったら静的なコードになってしまうアセンブラ/C/C++なんかよりも実際のデータの動向でコードを最適化できるJITの方が速くなるという未来はあり得ると思います。

        # まぁ、その頃には、C/C++にもJITが実装されるようになるんでしょうけど
    • by Anonymous Coward
      現状でも開発・保守にかかる時間と実行時間を足したらJavaScriptのほうが圧倒的に早い気がする。
    • by Anonymous Coward
      よーしパパ、無限ループはJavascriptで書いちゃうぞ。
      • by Anonymous Coward
        JavaScriptで書くと無限ループが今と比べて1/2の時間で終わるんですね。素晴らしい!

        #ん?
  • by Anonymous Coward on 2008年09月21日 11時05分 (#1423610)
    これはすごい。Webkit+V8のChromeはWebkit純正に戻す気はあるのだろうか。VMだけ切り替えるボタンがあればいいのか。マイクロソフトは白旗上げたほうがいんじゃないの?
    • by Anonymous Coward on 2008年09月21日 12時44分 (#1423647)
       記事を読まずに適当なことを言いますが、他のコメントでも言われているように大抵のベンチなんて局所的なものです。
      本当に速いかどうかは体感でしか分かりません。

       また、WebKitのJavaScript高速化は昨日今日出てきたわけではなく以前から掲げられていたものであり、Googleが知らなかったはずはないと思います。
      親コメント
    • IEが遅いのはまぁ事実ですが、同じ土俵に立っていない点は考慮すべきかと思います。

      IEは開発者向けに各種インターフェースを公開してるはずです。逆に、他のブラウザはどうでしょう?
      今回のWebKitは見ていないのでわかりませんが、例えばChromeのV8は、parseした時点でソースコードとの対応が抜け落ちます。
      あとエラーメッセージも酷いときは先頭からのバイト数(文字数かも?)しか位置情報がなかったりするし…行番号出してください orz

      # statement_pos()メンバ関数があるけど、往々にして初期化されておらず-1が返ってきて凹んだ。
      親コメント
      • by Anonymous Coward
        IEがいまだに独占状態だったらそんな言い訳を重ねていまだにIE6並みのJavaScriptエンジンを使わされていたかと思うと、健全な競争は必要だと心の底から思いますね。
        確か最初はIE7すらWindows Vista向けにしか出さないとか(今となっては)寝言言ってましたよね。
    • by Anonymous Coward
      規格どおり動作することが一番大事
    • by Anonymous Coward
      GoogleはコードをWebKitチームにcontributeするそうなので、どっちに
      しても将来のWebKitではいいとこ取りになりそうな気がするし、WebKitが
      最速のWebブラウザエンジンであり続けるのかも。
  • by Anonymous Coward on 2008年09月22日 12時51分 (#1424067)
    不具合も2倍とか言わんでクレよ?
typodupeerror

犯人はmoriwaka -- Anonymous Coward

読み込み中...