ページ

2008年9月3日

Google ChromeのJavaScript V8が凄いらしい件

グーグル「Chrome」、JavaScriptベンチマークで競合ブラウザを圧倒」と言う驚きの結果です。グラフを見ると,V8のパフォーマンスが桁が違います。きっと,名前が速そうだからでしょう。このベンチマークはGoogleが提供しているものなので,話半分にきいても凄いですが,JavaでJITが導入されたときや,IBMのJITがCのコードより速くなると言うときのベンチマークを思い出せます。

Design Elementsを読むと面白いところとやっぱりと言うところがあります。基本的に3つのポイントがあって,
  • プロパティへのアクセスを高速化した
  • コンパイルしちゃえ!JITみたいなもん。
  • おれらのがベージコレクションは凄いんだぜ,どうだ!
ということらしいです。最初のプロパティへのアクセスは,プロパティが追加されるたびにクラスをつくってアクセスするらしいです。なかなか富豪的です。同じクラスを何度もインスタンス化すると高速ですが,一度しかやらないと,かえって遅いはず。あとは,各クラスのプロパティへはオフセット(配列)でアクセスするので,辞書やハッシュよりは速いと言うことらしい。

コンパイルしちゃえ!がベンチマークのあの性能差に繋がっていると思います。Safariは知りませんが,Firefoxとかもコンパイルしちゃえ戦略をとろうとしていたような気がするので,暫くすれば,ここまでの性能差はなくなるかもしれません。

ガベージコレクションはまあ,そんなものです。ガベージコレクションを行なっているときはプログラムがブロックするので,タイミングによってはブラウザが反応しなくなるとかもあるんでしょうか?

V8恐るべし。

0 件のコメント: