SIHOのプログラミングわーくワク

興味の赴くままに勉強してたら、読み書きできる言語は9個になりました。他にもいくつか気になる言語があったりなかったり?  まだまだ続く、楽しいお仕事わーくワク♪

  • « 
  • 10 
  • 11 
  • 12 
  • 13 
  • 14 
  • 15 
  • 16 
  • 17 
  • 18 
  • 19 
  • 20 
  • 21 
  • 22 
  • 23 
  • 24 
  • 25 
  • 26 
  • 27 
  • 28 
  • 29 
  • 30 
  • »

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

iOS4.2向けの最適化で私がやったこと

2010.12.21 (Tue)

- 宇宙飛行士100の言葉 - http://itun.es/iFT75Tをバージョンアップしました。

その際行った、iOS4.2向けの最適化についてTwitterで質問されたので、全てのケースに当てはまるわけではないと思うけど、こちらにもメモしておきます。誰かの参考になれば。

iOS4.2になって感じた変化。
1)Low Memoryがでやすくなった。
2)スライダーのinsideUpのイベントがそれまでは2回飛んでいたのに、1回になった。

2個目はif文で対応したけど、問題は1つ目。

■Low Memory対応でトライしたこと
1)unloadのメソッドを加えて、objectをマメにリリースするようにした。
 →結果:再度allocするときパワーが必要なうえ、操作感ももっさりしてしまったのでNG。
2)使用するobjectの数を最小限(出来るだけ使いまわす)にして、起動中はリリースしないようにした。
 →結果:これは大成功。
  具体例:
  1)scrollViewの中にWebviewを入れていたものをWebviewのみにして、もともとScrollviewにセットしていたプロパティは、Webviewの中のscrollviewに対して行うことにした。
  2)Webviewは新たにhtmlページを読み込むたびにalloc&autoreleaseしていたのだけど、これを3つのWebviewを使いまわすことにした。
3)複数の処理が重なっている箇所を洗い出して、全ての処理が必ず1つずつ行われるようにした。
 →結果:これも大成功。
  具体例:
  1)HTMLの読み込みを3ページ一緒に行っていたものを配列に格納してから、順に読み込むようにした。
  2)演出に使っているアニメーションも(1)のHTMLの読み込みの間に挟みこみ、アニメーション終了で次のHTMLを読み込むとかして、もうほんとゼッタイ処理が重ならないようにした。
  ※そこで、気が付いたこと。XMLの読み込みとかテーブルのセル作成は割りと処理が軽いぽい。
4)それでもLow Memoryの起きる箇所はHTMLの読み込み中だったので、HTMLの方で使っているjavascriptを軽量化した。
 →結果:かなり違うということが判明。
  具体例:
  1)意外にもコメントアウトされている箇所を削るだけでも処理は早くなった。びびっくり!
  2)複数のjavascriptをhtmlごとに読み替えていたものを最小限に減らした(計算処理と位置調整用の2つのみにした)とか。

と、ここまでやったらもっさり感はほぼ解消できたです。
また、Low Memoryはでても、それで落ちることはなくなったのでした。

Low Memoryがでて落ちるのはLow Memoryのタイミングでobjectが(NSStringとか)がリリースされていているのに、アクセスしようとして落ちちゃうってことで、iOS4.2以降はより厳密にチェックされるようになったという印象。逆にそれ以前は、対象が無くても落ちなかったりしていた。でも、それはやっぱり正しくないよねってきちん(?)と落ちるようになったという感じがしました。

ほぼ雑感な感じですが。
教訓としては、コントロールするオブジェクトは最小限にしてできるだけ使いまわす。そして、処理はひとつずつにする。と、こんな感じでしょうか。

ちなみに、iOS4.2は、iPhoneより、iPod touchの方がLow memoryがでやすい様でした。でも、それぞれで出る箇所が違ったので積んでいるCPUとかグラフィックエンジン?の違いなのかな?という印象。

コメント

コメントの投稿

トラックバック

この記事のトラックバックURL

 | HOME | 

プロフィール

siho_prof

SIHO
しほ

Twitter:
SIHO_o

viva mambo, inc.
iPhone&iPad / Flash / Kinect
使用言語:Objective-C, ActionScript 3.0, Javascript, Lua, PHP, C#, C, C++, WSH。
F-site staff

Solar System Simulator 広報

Web,スマートフォン、Desktopを問わず、アプリ制作が好物。執筆は必要に応じて。お仕事くださいまし。

サイネージ:ガンダムフロント東京・キャラクターフォトスポット設計(2012/4~常設)

アトラクション:富士急ハイランド 戦国BASARA ゲーム設計&プログラミング(2010/7-2012/4にて常設展示)

イントラシステム:「某メーカー研究所KJ法システム」DB,Flash,PHPを含むソリューション設計&DB構築、「美術系専門学校の生徒管理システム」iPadクライアントを含むソリューション設計&DB構築

iPhone/iPadアプリ:某球団試合速報アプリ、『魂を熱くさせる 宇宙飛行士100の言葉』『Mitaka Gallery -てのひら宇宙-』

書籍同梱ソフト:『4次元デジタル宇宙紀行Mitaka』『DVD-ROM&図解 動く! 深海生物図鑑』『DVD-ROM&図解 ハッブル望遠鏡で見る宇宙の驚異』

著書:『世界一わかりやすい Windows 7』『世界一わかりやすい Flash CS3』

検索フォーム

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。