このページの本文へ

前へ 1 2 3 次へ

Apple Geeks 第84回

iOS版「Google Chrome」が速くない理由

2012年07月06日 11時00分更新

文● 海上忍

  • この記事をはてなブックマークに追加
  • 本文印刷

iOS版「Chrome」が「Mobile Safari」を超えられない2つの理由

 iOS 4.3以降のMobile Safariには、JavaScriptコードをジャスト・イン・タイム(JIT)にコンパイルするJavaScriptエンジン「Nitro」が搭載されている。Mobile SafariのJavaScriptベンチマークが好成績を収めるのはそのためで、Nitroの存在がなければウェブアプリのパフォーマンスも低下することになる。

 一方iOSには、アプリ内にウェブブラウザー(Mobile Safari)と同じUIを提供する「UIWebView」というフレームワークが用意されている。一種のウェブブラウザーコンポーネントとして簡便に利用できるため、多くのアプリに使用されているが、このUIWebViewではNitroの高速性を生かせない。これは、セキュリティ上の理由(サンドボックス機構による制限)のため、Nitroがサードパーティー製アプリからの利用を禁止されていることが理由だ。

 Google ChromeのJavaScriptベンチマークが遅い理由は2つ、独自のJavaScriptエンジン(V8)を搭載していないことと、Nitroの恩恵を受けられない(低速な)UIWebViewを使用しているであろうことの2点だ。後者はコードを調べないかぎり証明できないが、前者についてはAppleがiOSデベロッパーに課すライセンス契約(アプリ埋め込みでないスクリプト/インタープリタ機構の搭載を禁じる条項がある)により、Google Chromeもその例外ではないと判断できる。

サードパーティー製ウェブブラウザーのJavaScript処理系は、速度の面でMobile Safariに遠く及ばないのが現実だ(画面は「iCabMobile」)

 つまり、Google Chromeは開発を始める段階から、ウェブアプリなどJavaScript処理系を必要とするタスクにおいては、Mobile Safariを超えられない運命にあったわけだ。そこをあえてリリースしてきた理由は分からないが、ただ純粋にGoogle Chromeの操作性を広範なプラットフォーム向けに提供したかっただけなのか、JavaScript処理系のハンデをものともしないメリットをユーザーに提供できる確信があったのか……。おそらく後者だとは思うが、「名にし負はば いざ言問はん……」的な部分があることには留意すべきだろう。



前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事

ASCII.jp RSS2.0 配信中