Pebble's Diary

プログラマーの作業メモ

Xcode4.6.3(2013-08-21時点最新)でメモリリークを調査する際のTIPS

Xcodeメモリリークを調べる場合はInstrumentsを使います。 Menu - Product - Profileを実行すればよいです。 うまく動かないときは、一旦iOSSimulatorで動かしてから実デバイスで実行してみてください。 私はメモリリークを調べる際は、実デバイスで行っています。 なるべく最新のハードがよいです。 Instrumentsの選択画面が出たときはLeaksを選択し実行します。

ボタンを押すたびにリークしていくこんなサンプルソースを使います。非ARCです。

f:id:pebble8888:20130821231242p:plain

まずはこのボタンを押してみます。

f:id:pebble8888:20130821231257p:plain

下の画面がでましたね。 リーク箇所を示しています。 次はこのボタンを押してみます。

f:id:pebble8888:20130821231309p:plain

右側にリーク部分のコールスタックが出てきました。 さらにここをダブルクリックしてみます。

f:id:pebble8888:20130821231319p:plain

f:id:pebble8888:20130821231334p:plain

なんと、ソースまで出てきました。 ここまでくれば、あとはなぜリークしているか考えて修正していくだけですね。

かならずしもすべてのリークをこのツールで検出できるとは限りません。 検出してくれずに、単純に、使用メモリ量がどんどん増えるだけという現象になる場合もあります。 その場合はアロケーションの方がぴょこぴょこ増加していくので、そこから地道に調べる感じです。