WWDC 2009が開幕しました。Jobs氏の姿が見られなかったのは残念ですが、Snow Leopardが9月に発売、iPhone OS 3.0が今月17日に公開(しかもiPhone向けには無償)と、それなりのニュースはありました。新ハードについては、レビューを予定しているのでご期待ください。
さて、今回は「Google Chrome」について。レンダリングエンジンはSafariと同じWebKitながら、独自開発のJavaScriptエンジン「V8」を搭載するなど、Googleの意気込みが感じられるWebブラウザに仕上がっている。まずはこちらからバイナリパッケージを入手してほしい。
Google Chromeのココに注目
Google Chromeは、Googleが開発を進めるオープンソースのWebブラウザ。レンダリングエンジンにはSafariと同じWebKitを採用、つまり表示面に関するSafariとの互換性はほぼ同じと考えていい。ChromeがWindows向けに公開された当初は、Webフォントや文字のアウトライン表示といったCSS 3の機能に対応しないなど、最新版Safariに比べ古いソースコードを使用しているためと考えられる機能差は存在したが、現在ではそれらの問題の多くが解決されている。Web開発者/デザイナーにとってみれば、"WebKit系"で括れることは検証作業の負担軽減という観点から好ましいはずだ。
一方、JavaScriptエンジンはWebKitとセットのSquirrelFishではなく、Google独自開発の「V8」を採用している。C++で実装されたこのエンジンは、他のブラウザのものと比べ高速との評価が高く、Google Chromeのもう1つの目玉となっている。
最大の特徴は、「SandBox」と呼ばれる機構だ。タブごとに独立したプロセスを割り当てることにより、1つのタブにメモリリークなどの問題が発生しても他のタブに影響が及ばなくなり、ブラウザ全体の安定性が向上する。このSandBox方式にはデメリットもあるが、セキュリティ面に配慮した先進の設計ともいえる(後述)。
OS X版にはコレがない
ようやく出たGoogle ChromeのOS Xネイティブ版だが、現状Windows版と比較するのは少々厳しい。HTMLレンダリングに問題があり表示が崩れることが珍しくないうえ、未実装の機能も多い。その一例を紹介してみよう。
まず、開発支援/管理ツールの多くが見当たらない。Windows版には、実行中のプロセス(Google Chromeの子プロセス)を管理するタスクマネージャや、JavaScriptコンソールが用意されているのだが、OS X版はまだ提供されていないようだ。いわゆる"スペシャル"は、「about:version」や「about:cache」など動作するものもあるが、「about:memory」や「about:network」は動作しなかった。
アドレスバー付近を見渡すだけでも、機能差は明白だ。Windows版では、アドレスバー右横に「ページメニュー」と「Google Chromeの設定」ボタンが配置されているが、OS X版にはない。これらのボタンからアクセスする「ブックマークマネージャ」も、「履歴」も「ダウンロード」もない。メニューバーを探しても見当たらないため、未実装と判断して差し支えないだろう。
お約束のベンチマーク
お約束、ベンチマークの測定も実施した。利用した環境はMacBook Pro 2.33GHz(Core 2 Duo)/2GB RAM、Mac OS X 10.5.7。Google Chromeのバージョンは9日時点で最新のv3.0.182.5、比較対象はSafari 4 Public Beta(Build 5528.17)とFirefox 3.5 Preview。実行したテストは、SunSpider JavaScript BenchmarkとV8 Benchmark Suite - version 4の2つのJavaScriptベンチマークだ。
その結果だが、SunSpiderとV8のいずれも、Google Chromeが総合トップの成績を収めた。数値演算や文字列処理など、大半の項目でGoogle Chromeが頭一つ抜けたスコアを記録しているが、V8のバージョン4で加えられたテスト「Splay」(平衡2分探索木を使いデータハンドリング性能を試す)の性能差が特に大きく、Safari 4 PBの6.7倍、Firefox 3.5 Previewの13.6倍となった。最近加えられたSplayは除外して考えるにしても、RayTraceやRegExpといった項目の性能差は大きく、ことJavaScriptに関するかぎり、V8が現時点における最速のOS X向けJavaScriptエンジンだといえる。
■表: SunSpider JavaScript Benchmark 0.9によるJavaScriptベンチマーク(単位:ms) | |||
---|---|---|---|
Chrome 3.0.182.5 | Safari 4 Public Beta | Firefox 3.5 Preview | |
3d | 111.8 | 155.2 | 193.4 |
access | 62 | 90.2 | 186.8 |
bitops | 52.4 | 54 | 51.4 |
controlflow | 3.8 | 6.8 | 41.4 |
crypto | 47.6 | 60.8 | 88.6 |
date | 113.2 | 87.8 | 190 |
math | 64 | 118.6 | 60.4 |
regexp | 28.6 | 32.8 | 85.2 |
string | 293.6 | 292.8 | 462 |
SunSpider JavaScript Benchmark 0.9によるJavaScriptベンチマーク |
■表: V8 Benchmark Suite - version 4によるJavaScriptベンチマーク | |||
---|---|---|---|
Chrome 3.0.182.5 | Safari 4 Public Beta | Firefox 3.5 Preview | |
Richards | 3660 | 3122 | 1388 |
DeltaBlue | 3221 | 2245 | 84 |
Crypto | 2669 | 2810 | 737 |
RayTrace | 2857 | 1694 | 171 |
EarleyBoyer | 3592 | 3433 | 264 |
RegExp | 679 | 376 | 157 |
Splay | 4801 | 714 | 353 |
Score | 2702 | 1631 | 299 |
V8 Benchmark Suite - version 4によるJavaScriptベンチマーク |