ついに8月、暑さも佳境に入って参りました。一方のiPhone 3Gも暑い、もとい熱いです。毎日のようにApp Storeで新着アプリが報告され、サードパーティーからアクセサリ類が発売されています。本音を言えば、Snow Leopardで涼をとりたいところなんですけどねえ。
さて、今回は「OS X iPhone 2.0」のパフォーマンスについて。"脱獄"直後は、なにができるか / 使えるアプリケーションはなにかといった単純な方向で考えがちだが、結局のところ「使いたいアプリケーションが実用的な速度で」動かなければ始まらない。Macと比較して、どの程度のパフォーマンスを実現できるのか……脱獄しないかぎり実行できないベンチマークテストを使い、実際に検証してみよう。
SciMark 2.0
最初に試したのは、浮動小数点演算および最適化にターゲットした「SciMark 2.0」。FFT (Fast Fourier Transform)、SOR (Jacobi Successive Over-relaxation)、Monte Carlo integration、Sparse matrix multiply、およびdense LU matrix factorizationという5種類の数値計算を行うベンチマークだ。
利用したJava SEランタイムは、Cydia経由で配布されているJamVM / GNU ClassPathという構成の「iPhone/Java」。JamVMのバージョンは1.5.1、対するMacBook Pro 2.33GHz / OS X 10.5.4はJava HotSpot Client VM 1.5.0_13だ。なお、テストにはコンパイル済のjarファイルを利用し、一度MacBook Pro側でダウンロードしたものをscpでiPod touch側へコピーしている。
iPod touch側で実行したコマンド
# cd /var/tmp
# scp shinobu@192.168.1.2:/Users/shinobu/scimark2lib.jar .
# java -cp scimark2lib.jar jnt.scimark2.commandline
結果だが、各テストを相加平均した「Composite Score」で判断すると、その差はなんと約170倍。しかしiPhone/JavaにはJITが含まれないため、「-Xint
」を指定しインタープリタで実行すると、MacBook ProのComposite Scoreは39前後で、iPod touchの約20倍。モバイルSafariなどのアプリケーションを利用したときの体感速度を思い起こせば、なるほどねえ、と納得できる数字だ。
Fractal Benchmark
次に試したのは、いろいろな言語でマンデルブロ集合を計算する「Fractal Benchmark」。今度はJava (MacBookでは実行時のオプションに「-Xint
」を指定) のほか、Cydia経由で入手したRubyとPythonもターゲットに加えている。なお、ASCII文字を出力する処理を伴うため、iPod touch上では仮想端末 (MobileTerminal) とSSH経由の2通りでのテストを行った。MacBook Pro 2.33GHzとの差があまりに大きく、Macシリーズとの相対的な速度比較が難しいため、iBook G4 800MHz / OS X 10.4.11という少し古めの環境も登板させている。
その結果は下表のとおり、MacBook Proが約13.6倍 (Java) ~ 約34倍 (Ruby)、iBook G4が1.14倍 (Java) ~ 4.38倍 (Python) という結果に終わった。Objective-Cという肝心な言語でのテストは未了だが、もっとも高パフォーマンスだったJava処理系のみ抽出すると、iPod touch / OS X iPhone 2.0の演算性能は噂されるスペック (ARM11系でクロック数は670MHz程度?) 相応だといえる。RubyとPythonの遅さの理由は気になるところだが……。
表1: Fractal Benchmarkの測定結果
Java | Ruby | Python | |
---|---|---|---|
iPod touch(local) | 55.94 | 212.29 | 99.95 |
iPod touch(SSH) | 12.39 | 186.19 | 72.66 |
MBPro 2.33GHz | 0.91 | 5.47 | 2.45 |
iBook G4 | 10.83 | 55.28 | 16.59 |
ベンチマーク測定を終えて
今回使用したベンチマークテストは、描画や各種I/Oの測定は含まないものばかりだったが、1つハッキリしたことがある。それは、現状のままではFlashやJavaを快適に利用するには厳しいということ。Appleの思惑のほか、ライセンスなどパフォーマンスとは直接関係しない問題が含まれるため、事態はそれほど単純ではない。しかし、移植が順調に進んだとしても (モバイルSafariとともに) 余裕でサクサク動くようになるとは考えにくい。
AdobeやSunはiPhoneのサポートに意欲的、との報道を耳にするが、実際のところどのような形での実装を考えているのだろう? Mac OS XやWindowsのようなWebブラウザ用プラグインの形が、パフォーマンス上現実的ではないとしたら……さて、どうなるか。