Chromeは早いか否か

http://d.hatena.ne.jp/umitanuki/20080907
興味深い意見だけど,ちょっと違うと思うな.

予想通り、Chromeは純粋な演算(test1)とプロパティアクセス(test3)には滅法強そうです。ただし、DOM操作(test2)はSafariより遅く、文字列生成も他とあまり変わらず。DOM操作がSafariより格段に遅いのには驚かされます。

動的最適化を使ったHotSpotVMと同じ特徴が見られますね.かなりの数のJava技術者もGoogleに流れてるというし,もし動的最適化の技術を使っているなら,*1 マイクロベンチマークにはほとんど意味はない.*2 *3

  • パフォーマンスチューニングにおける大事なことは、ボトルネックを見極めて局所的につぶしていくことですが、
  • 残念ながらV8の設計者はただの速度バカだったようです。

前半は賛成.後半には反対.

一画面でJavascriptを数千行書いている自分に言わせれば、クライアントサイドのJavascriptはDOM操作と文字列生成がほとんどです。足し算やかけ算がいくら速くなってもアプリが速くなることはありません。

これについてはもっと馬鹿げてる.

それはあなた個人の狭い範囲の経験でしかなく,GoogleはあなたのためにChromeを作ったわけでもない.Googleは他でもないGoogle自身のためにChromeを作っただろう.ならば最適化すべき対象はGmailGoogle DocsGoogle ReaderなどのGoogleの製品群だ.他のアプリにおいてそこそこ高速化でき,GmailGoogle Docsにおいて最速を誇れば,Googleにとってはそれは十分に意味のある「最適化」と言えるだろう.


最後に,Firefox陣営もFirefox3.1でJavaScriptのさらなる高速化を実現すると主張しているそうだ.だとすればGoogleがこの時期にChromeを公開したのは,マーケティング的な側面も強いだろう.Firefox3.1が登場していない今だからこそ,ChromeJavaScriptのパフォーマンスが際だつのだと.

個人的な体感速度で言えば,Chromeの方が早いかなとは思う.しかしヘビーユーザーの使うFirefoxは多数のプラグインで拡張しているので重くなって当然だし,それでもUIも含めたトータルの処理速度だとカスタマイズしたFirefoxの方が遙かに早い.*4だから多少の体感速度の差などは,少なくとも私にとっては意味がない.

http://blog.drikin.com/article/105956891.html


追記:
コメントより

ChromeのV8エンジンがでるまえまでのウェブアプリは、V8以外のJSエンジンの速度に合わせて設計しているから演算力が必要とされるウェブアプリがそんなに多くなく極端な体感差はないけど、これからはChrome(V8)の速度を前提にし、V8級の演算速度を誇るJSエンジンを積んでないとまともに利用できないってウェブアプリが少なからずでて来ると思いますよ。
例えばオセロや将棋のようなテーブルゲームなどはレンダリング力よりも演算力がモノを言います。他にもサーバから丸ごとデータを受け取ってクライアントサイドで必要なだけデータを加工し必要な分だけ表示したりページングしたりといった使い方をしサーバ側の負荷を減らしつつ使い勝手を向上させるといった使い方も考えられます。

同意.

これはJavaでも同じようなことがあったよね.

Chrome って、実際のところ、Google 特有の「2割ルール」で作られたもので、元々は会社の戦略として作られたものではないんじゃないかって言われたりも。となると、「V8の設計者はただの速度バカ」なんて叩かれてますけど、それで当然というか、Google も「ええその通りですよ、それが何か?」という感じなのでは。(今後は会社の戦略に組み込まれていくんでしょうけど、少なくとも現状は。)

http://d.hatena.ne.jp/ufcpp/20080909

「動的最適化技術を入れながら試しに作ってみたら結構早かった.DOMの辺りは時間がかかるから手を入れてないけれど,IEに比べれば十分早いから,Firefox3.1が出てない今のうちに公開しておこう.」程度かも.

あとね、こちらのエントリにあるように、canvasのパフォーマンス(http://www.abrahamjoffe.com.au/ben/canvascape/textures.htm)はもう並ぶものがない勢い。リンク先のコンテンツはcanvasを使った3Dゲーム風のデモなんだけども、元々負荷の高いコンテンツなのでウチのしょぼスペックPCだとストレスないのはChromeのみ、かろうじてSafariまでは、ってな感じ。こうね。

Chrome >>> Safari >>>> Opera >>>>>>>>>> Firefox3 >>>>> IE7

http://dara-j.asablo.jp/blog/2008/09/12/3756785

*1:動的最適化を使っているかどうかは知らない.しかしこの結果を見れば一つの可能性として検討すべきものではある.試しにググってみたら,こんなページがひっかっかった.
http://www.hackerdashery.com/2008/09/google-chrome-and-future-of-browsers.html
http://sevendegrees.blogspot.com/2008/08/firefox-31.html

*2:http://gceclub.sun.com.cn/java_one_online/2005/TS-3268/ts-3268.pdf
http://www.ibm.com/developerworks/jp/java/library/j-jtp02225/

*3:ちなみにJavaみたいなOOP言語だと,インスタンス生成自体のコストよりGCのコストの方が重要なことも多いんだけどな.JavaScriptだと違うんだろうか.

*4:これはEmacsの方がEclipseより開発速度が早いのと同じ理屈.