今回も第286回に続き、OS X iPhone 2.0 (iPod touch) のベンチマークテストについて。字数がオーバー気味なので、前置きなしに本編へ突入だ。

ベンチマークテストの補足

iPod touch用のGCCパッケージのインストールがようやく成功したので、古典ベンチマーク「Dhrystone 2.1」を使い整数演算性能を検証してみた。なお、利用したコンパイラ「iPhone/GCC」とヘッダ集「Toolchain 2.0.3」はCydia経由で入手したもので、GCCのバージョンはv4.2.1 (iBook G4とMacBook Proはv4.0.1) 、ループ回数はデフォルトの5万回では差がわかりにくいので1,000万回に変更 (dhrystone.cの387行目を「50000」から「10,000,000」に修正) している。

その結果だが、表1のとおり。Dhrystoneはマルチスレッド化されていないうえ、CPUの拡張命令もほとんど使用されていないため、各CPUが持つ真の性能を発揮しきれてはいないが、同じ「素」の状態で試すかぎり、iPod touchのスコアがMacBook ProはもちろんiBook G4のそれに大きく劣後することは確か。単純計算すると、iPod touchの整数演算能力はiBook G4 800MHzの約31.8%、MacBook Pro 2.33GHzの約4.4% (いずれもregiter有効時) ということになる。

iPhone / iPod touchに搭載されているCPUに関し、Appleからの公式な発表はいまだ行われていないが、分解を試みた情報筋によれば、ARM11コアを搭載したSamusung製とのこと。これがメーカーの公表スペックどおりだとすると、クロック数は620MHz (?) で、さらにメディア再生用のSIMD命令セット、3Dグラフィック用の浮動小数点演算ユニット、組み込みJava実行環境 (Jazelle) を備えることになる。前回および今回のベンチマークテストは、いずれもこれらの特徴を考慮していない -- アプリケーションには最適化の余地がある -- ことを申し添えておく。

表1: Dhrystone 2.1の結果 (ループ回数を1,000万回に修正)

register無効 register有効
iPod touch (v2.0) 249792 250626
iBook G4 800MHz 702411 788022
MacBook Pro 2.33GHz 5076142 5747126

SSH経由でiPod touchにログイン、Dhrystoneベンチマークを実行したところ

SunSpider 0.9もテスト

JavaScriptのベンチマーク「Sun Spider 0.9」も、テストしてみた。ネイティブアプリが開発可能になったとはいえ、iPhone登場時点ではAjaxベースのアプリケーションが前提だったこともあり、依然としてJavaScriptに対する需要が根強いはずだからだ。

結果は、表2に示すとおり。正規表現 (RegExp) テストは比較的差が小さいものの、他の全項目ではMacBook Pro 2.33GHzおよびiBook G4 800MHzに大きく水を空けられている。バイナリは共通ではないものの、同じWebKit 3.1ベースであることを考慮すると、やはりプラットフォームとしての性能差は歴然といえる。

一方、WebKitの開発動向に目を移すと、現行のWebKit 3.1に比べ約1.6倍の高速化を実現したという新JavaScriptエンジン「SquirrelFish」の話もある。他との比較はともかく、iPhone / iPod touchでGoogle Docsがそれほどストレスなく使えている現状からすると、Webアプリのパフォーマンスは楽観的に考えていいのかもしれない。

表2: Sun Spider 0.9 の結果

iPod touch (v2.0) iBook G4 800MHz MacBook Pro 2.33GHz
3d 18353.6 2987.4 406.6
access 18213.2 3641.6 528.2
bitops 15570.8 3212 458.6
controlflow 3944 631 90
crypto 10652 1697 239
date 15498.6 2404 285.4
math 23541 3119.8 450.2
regexp 3321.6 1270.8 214
string 34171.4 4755 659.4
TOTAL 143266.2 23718.6 3331.4

再びFlash / Javaの可能性について考える

第286回は、浮動小数点演算の結果のみを示してFlash / Javaの可能性について言及するという、いささか乱暴な話の展開になってしまったが、今回のDhrystoneとSunSpiderの結果を見ると、やはりiPhone / iPod touchにとっては"厳しい"タスクである (モバイル向けに軽量化されたバージョンは考慮しない)、という結論にたどりついてしまう。前回が言葉足らずだったこともあり、少々補足させていただこう。

Flashの可能性についてだが、スペック的に近い「WILLCOM WS011SH」を例に考えてみたい。Marvell PXA270 / 520MHzを搭載するこのデバイスでは、Flash Playerが動作するが、バージョンはFlash 7 (Opera使用時)。世のWebサービスはFlash 9を要求する傾向にあり、WS011SHユーザにもFlash 9を望む声が多いと聞く。ちなみに、ニコニコ動画の視聴に必要なFlashのバージョンは「9」以降。

シンプルさと全体のバランスを重視するAppleのこと、動いたとしてもシステムリソースに余裕なさげなFlash 9に積極方針とはどうにも考えにくい。代替としてFlash 7を選ぶとはなおさら考えにくく、携帯電話やデジタル家電など小型機器を主対象としたFlash Liteを選ぶ可能性はさらに低いはず。

JavaもFlashと同様、「素」の状態では余裕綽々とはいかない状況が考えられるが、前述したとおりCPU側に内蔵されている (と考えられる) アクセラレータ「Jazelle」が活用される可能性がある。とはいえ、現在のMac OS XにおけるJavaのポジションを考えると、iPhone / iPod touchで積極的にサポートされるという説得材料に欠ける。

もっとも、これはOS X iPhoneに (Safariのプラグインとして) 標準装備される機能の話で、App Store経由でどのようなものが登場するかは予測できない。JavaもFlash Playerも、オープンソース版があることだし……Webブラウザから独立した、スタンドアロンのプレイヤーとしてなら可能性はあるかも、と考えているのだが。