iPhoneアプリのメモリリークを調べるには

iPhoneiPadアプリを開発するときにメモリリークしていないかどうかを調べるにはclangによる静的解析とInstrumentsによる動的解析があります。以下それぞれの手順となります。

clangによる静的解析

  1. Xcodeの[ビルド] - [Build and Analyze]を実行する。
  2. 問題が発見された場合は、[ビルド] - [ビルド結果]に青いアイコンで通知される。

なお、ビルド時に自動で解析を行いたい場合は、[プロジェクト] - [プロジェクト設定を編集] - [ビルド]タブの[静的アナライザを実行]にチェックを入れておきます。
Xcode3:f:id:murapong:20101106151059p:image
Xcode4:f:id:murapong:20110405195359p:image

Instrumentsによる動的解析

  1. Xcodeの[ビルド] - [すべてのターゲットをクリーニング]でクリーニングしておく。
  2. [ビルド] - [ビルド]を実行する。
  3. [実行] - [パフォーマンスツールを使って実行] - [Leaks]でInstrumentsを起動する。
  4. 実際にアプリケーションを操作する。
  5. メモリリークが発生した場合は[Leaks]欄に赤いグラフが描画されます。

なお、アプリケーション起動時のメモリ使用量を記録しておき、一通りアプリケーションを操作したあとに起動時の使用量と比較する方法もあるようなのですが、確認方法がわからなかったため引き続き調査しています。