2011-12-07 5 views
4

私は、与えられたアプリケーションのコードでメモリ使用量を減らしてみるように求められました。アプリはシミュレータでうまく動作しますが、デバイス上では終了しています。デバッグすると「一時停止」状態になり、アプリケーションはデバイスで終了します。XCode Instrumentsのメモリ割り当てを担当する特定のメソッドは、どのように見えますか?

計測器を使用しているときに漏れが発見されたが、修正されていたが、大量の割り当てが行われていた。打ち上げから数秒以内に、機器の割り当てトレースは「Malloc 16 Bytes」に対して1,021 KBを示します。これは本質的に役に立たない情報なので、どこにメモリが割り当てられているのか見ておく必要がありますが、何か役に立つものが見つからないようです。私が深い点検のために得ることができるのは、 'dyld'、 'libsystem_c.dylib'、 'libCGFreetype.A.dylib'などがたくさん割り当てられていますが、責任ある呼び出し元は決してアプリケーションソースから認識できる方法ではありません。

ここで最も多くの割り当てを引き起こしている方法を確認するにはどうすればよいですか?私はこの使用をダウンする必要があります!ありがとうございます

答えて

0

1MBは大したことではありません。 1MBを使用せずに完全なビューを投げるという点では、あまり効果がありません。

WWDC 2010(http://developer.apple.com/videos/wwdc/2010/)には、楽器を使用してメモリ使用量を分析する優れたビデオがあります。タイトルは、Instrumentsによる高度なメモリ解析です。 2011年から更新されたビデオがある可能性があります。

+0

実際に、メモリの総割り当ては、起動直後に38MBです。割り当てバックトレースはまだ得られませんが、私は今ビデオを見ています。私のテストハードウェアはiPad 1であり、メモリ使用量にはかなり魅力的なデバイスのようだが、多くのアプリケーションはメモリ問題でOSによって終了する問題を抱えているようだ。無限刃IIを見てください:) –

+0

ああ。あなたは1Mが問題だと言っているわけではありませんが、それは役に立たない情報でした。わかりました。それには正当な理由がないと38Mが少し怖いです。私はあなたがインストゥルメンタルに関して見つけ出すことができるすべてのビデオを見ていることは良いアプローチだと思います。インストゥルメントは非常に強力ですが、拾いにくい場合があります。ビデオは大いに役立つことができます。 – smparkes

+1

理由は約1000のUIImagesを持つUIScrollViewです。私は、UIScrollViewの可視領域に基づいてイメージを動的にロードし、目に見えない領域をアンロードして大量のメモリ負荷を軽減する最善の方法を検討しています。 –

4

拡張詳細ビューを開くと、メモリ割り当ての呼び出しスタックが表示されます。 [表示]> [拡張詳細]を選択して、拡張詳細表示を開きます。

コールツリービューに切り替えると、コード内のどこにメモリを割り当てるのかがわかります。ジャンプバーを使用して、コールツリービューに切り替えます。

関連する問題