みなさまこんにちは、Google+の招待を心待ちにしているtsutsumiと申します!
今日は_level0では久しぶりのiOSの話題でございます。

「なるべくUIViewを使わず描画する」とか、「nibを使わない」とか、iOSアプリの動作を軽快にするためのTipsは数あれど、実際どれぐらい効果あるんだろう、ってことを調べたい、でもInstrumentsはめんどくさい、ってことでメモリ消費量やUIViewの数など、「負荷を示すパラメータ」をリアルタイム表示するクラスを作りました。
(イメージとしてはAS3でいうところのStats

同梱のサンプルコードを実行すると、こんな感じで表示されます。(左上の黒いラベルがStats)

20110428232915.pngのサムネール画像

パラメータ内訳は後述しますが、メモリを約16MB使用し、ビューが合計5つ(UIView、UIButton、UIButton上のUILabel、UIImageView、Stats)になっていることがわかります。
また、draw imageボタンを連打するとCPU負荷の値が若干上がることも確認できます。
※シミュレータでの実行結果です。

パラメータの内訳と単位

上から順に、
  • アプリのメモリ使用量の変動量[kB]
  • アプリのメモリ使用量合計[kB]
  • CPU時間の変動量[msec]
  • UIViewサブクラスの総数
となっています。

使い方

githubにサンプル付きで置いてあります。 https://github.com/shu223/Stats
  1. Stats.h, Stats.m をプロジェクトに追加
  2. ヘッダで Stats.h をインポート
  3. UILabelと同じように、好きな場所に貼り付ける(サンプルのようにappDelegateのwindowにaddSubviewしておくと常に一番上に表示されます)
self.stats = [[[Stats alloc] initWithFrame:CGRectMake(10, 30, 100.0, 60.0)] autorelease];
[self.view addSubview:stats];

その他

メモリ使用量取得部分のコードは全面的にこちらの記事を参考にさせていただきました。
自分のアプリが使用しているメモリサイズを取得するには


よろしければぜひご利用ください!


HTML5飯