【コラム】

OS X ハッキング!

286 "脱獄"後のお約束、各種ベンチマークを測定

    海上忍  [2008/08/02]

    ついに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などのアプリケーションを利用したときの体感速度を思い起こせば、なるほどねえ、と納得できる数字だ。

    Javaベンチマーク「SciMark 2.0a」実行結果(iPod touch、SSH経由)

    Javaベンチマーク「SciMark 2.0a」実行結果(MacBook Pro 2.33GHz)

    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ブラウザ用プラグインの形が、パフォーマンス上現実的ではないとしたら……さて、どうなるか。

    関連サイト

    関連したタグ

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン