iOSアプリのメモリ使用量をリアルタイムに表示するクラスを公開しました
みなさまこんにちは、Google+の招待を心待ちにしているtsutsumiと申します!
今日は_level0では久しぶりのiOSの話題でございます。
「なるべくUIViewを使わず描画する」とか、「nibを使わない」とか、iOSアプリの動作を軽快にするためのTipsは数あれど、実際どれぐらい効果あるんだろう、ってことを調べたい、でもInstrumentsはめんどくさい、ってことでメモリ消費量やUIViewの数など、「負荷を示すパラメータ」をリアルタイム表示するクラスを作りました。
(イメージとしてはAS3でいうところのStats)
同梱のサンプルコードを実行すると、こんな感じで表示されます。(左上の黒いラベルがStats)
パラメータ内訳は後述しますが、メモリを約16MB使用し、ビューが合計5つ(UIView、UIButton、UIButton上のUILabel、UIImageView、Stats)になっていることがわかります。
また、draw imageボタンを連打するとCPU負荷の値が若干上がることも確認できます。
※シミュレータでの実行結果です。
パラメータの内訳と単位
上から順に、- アプリのメモリ使用量の変動量[kB]
- アプリのメモリ使用量合計[kB]
- CPU時間の変動量[msec]
- UIViewサブクラスの総数
使い方
githubにサンプル付きで置いてあります。 https://github.com/shu223/Stats- Stats.h, Stats.m をプロジェクトに追加
- ヘッダで Stats.h をインポート
- UILabelと同じように、好きな場所に貼り付ける(サンプルのようにappDelegateのwindowにaddSubviewしておくと常に一番上に表示されます)
self.stats = [[[Stats alloc] initWithFrame:CGRectMake(10, 30, 100.0, 60.0)] autorelease]; [self.view addSubview:stats];
その他
メモリ使用量取得部分のコードは全面的にこちらの記事を参考にさせていただきました。自分のアプリが使用しているメモリサイズを取得するには
よろしければぜひご利用ください!