« Steve Jobs氏ご逝去 | メイン | MacOSXのサービスからJavaScriptが評価出来るとか »

PhoneGap 1.1.0とSafariでJavaScriptの速度比較してみたメモ

iOSの4.3で導入されたNitroエンジンが5ではUIWebViewでも使えるようになるのではとの記事を見つけたのでPhoneGapとSafariでJavaScriptの性能にどれくらいの差があるのかと思い軽く調べてみました。PhoneGapはUIWebViewがベースで、SafariはNitro(JIT)装備の比較になります。

  • iPad (初代)
  • iOS最新版(iOS 5.0)
  • PhoneGap1.1.0
  • Xcode 4.1

アプリはindex.htmlにSunSpider JavaScript Benchmarkへのリンクを張っただけの単純なもの。

結果...Totalだけを記載すると
  • Safari          2886.3ms
  • PhoneGap    9498.4ms

その差は約3.3倍。同じテストをiPhone 3GSで走らせるとやはり3.5倍ほどPhoneGapの方が遅い。残念ながらJITは使われていませんね。

少し調べてみるとどうやら4.3以降ではメモリにmprotectでPROT_EXECをセット出来るらしいのだが、普通には無理なようです。

ここまでわかっていながら出来ないのはなんとも。LuaJITもiOSのアプリに組み込めますが名前に反してJIT機能は無理。iOS4から5になっても状況はあまり変わらない。

セキュリティのためとはいえキビシイですねえ。


と、これだけでは何なのでPhoneGap 1.1.0で外部サイトへのリンクを使う場合にご注意。

ドキュメントにも書いてあるのですが、1.0と違いPhonegapアプリ内のリンクで外部サイトへ飛びたい場合white-listに追加しておかないと動作しません。

  • Xcodeで<Project>/Supporting Files/PhoneGap.plist内のExternalHostsキーに"Add Row"して"*.webkit.org"等とホスト名を追加

です。少しはまったので。

トラックバック

このエントリーのトラックバックURL:
http://blog.browncat.org/cgi-bin/mt/mt-tb-abc.cgi/943


コメントを投稿

(お書きになったコメントはすぐには表示されません。ご了承ください。)


About

2011年10月06日 23:55に投稿されたエントリーのページです。

ひとつ前の投稿は「Steve Jobs氏ご逝去」です。

次の投稿は「MacOSXのサービスからJavaScriptが評価出来るとか」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

           

カテゴリー

Powered by
Movable Type 3.36

Twitter


最近のエントリー

デル株式会社ads

注目エントリー