2010年8月
« 7月   9月 »
 1
2345678
9101112131415
16171819202122
23242526272829
3031  
2010/08/12

iPhone4のQuartzが異常に遅い!?

歴代のiPhoneの中では、全ての面で最速だと思っていたiPhone4が、Quartzで画像を描画すると異常に遅い事に気づきました・・・。

POPINOのアプリで、独自のViewを表示している所はQuartzで描画しているので、これは痛い・・・。

どうにか対応方法が無いかと探し中ですが、Developer Forumでもいくつか投稿があり、AppleへBugとしてレポートを出している人もいるようです。

原因の1つとしては、解像度が上がったiPhone4のRetinaディスプレイへのAPIでの対応が考えられます。

Appleのドキュメントによると、画像を描画するAPIに関しては、ハイレゾ対応がされているという事で、その辺りの判定や画像のスケールの変更の処理の関係で、何らかの条件で遅くなる事があるようです。

何かベンチマークが取れないかと、単一の画像を60回描画するような処理を、iPhone4、iPhone3GSで実行して、drawRectの最初と最後の時間を計算してみたんですが、この場合はiPhone4が速く、どういった条件で遅くなるのかが不明です。

色んな画像を描くと遅くなるのか、それとも別の条件があるのか、ベンチマークの取り方が悪いのか(!?)、今ひとつ決定的な理由や解決策は分かりません。

Forumでは5倍くらい遅くなったというような書き込みもあって、確かにiPhone4とiPhone3GSで同じアプリを動かしても、全然動作速度が違ってますし、Instrumentsでパフォーマンスをチェックしてみると、iPhone4だけdrawRectで異常に時間がかかってたりします。

海外のデベロッパーでは一部アプリの公開を停止している人もいるようで、もし、iPhone 3GSからiPhone4に乗り換えて、遅くなったと感じるアプリがあれば、その原因はQuartzにありそうです。

AppleがiOSのバージョンアップで対応してくれるのが一番ですが、何かしらの対応がされるのか(対応可能なのか)や、いつになるのか分からないのを待っていてもしょうがないので、現状できる事を、試しやすい所からちょこちょこと試しつつ、少しづつパフォーマンスを改善してますが、それでもiPhone 3GSの方が速い・・・。

だんだんと機種も増えて来て、テストも難しくなってきました。

 

Comments are closed.