2011-06-24 3 views
6

iPhone/iPadアプリの性能を調整していますが、すべてのメモリが解放されているとは限りません。インストゥルメントでは、私のシミュレータでメモリの警告をシミュレートした後、たくさんの "Malloc"エントリが残っています。彼らについては何ですか?私はそれらを取り除くことができますか、それらが何を意味するか/彼らが何のために立っていますか?iPhone/Instruments:オブジェクトサマリーの「malloc」エントリについて

どうもありがとう、任意の時点で

ステファン

enter image description here

答えて

4

、あなたのアプリケーションにも警告メモリ(および後続のメモリを取得した後、生きているオブジェクトの(巨大な)番号を持っていますオペレーティングシステムによる回復)。ですから、あなたが見ているmallocの多くが見えることはよくあることです。

メモリ割り当てに何か問題があることを示すものではありませんが、プログラムが実行されているということだけが考えられます。

このS.O. topic to learn more about the object allocation toolもご覧ください。

さらに、メモリ割り当ての問題を検出するために使用できる多くの高度な技術があります。 HereあなたはLeaksツールが許す範囲を超えて進むことを可能にする素晴らしいチュートリアルを見つけることができます。

EDIT:

それらのmallocをの正確な意味について、あなたは(大体それを置くために)あなたがオブジェクトの二つの広いクラスを割り当てることができますことを考える必要があります:OBJの-Cを介して作成されているObjective-Cのオブジェクトランタイムシステム、およびmallocを介して割り当てられた「通常の」Cオブジェクトが含まれます。

2番目のクラスの多くのオブジェクトは、システムライブラリとコンパイラのCライブラリ(ソケットやファイルハンドルなど)に割り当てられます(mallocを直接呼び出すことはありません)。これらの(C)オブジェクトには型情報が関連付けられていないため、Instrumentsは割り当てられたメモリブロックのサイズを簡単に表示します。

多くの場合、mallocオブジェクトは上位クラスによって作成されるため、インスタンスに関連付けられたメモリをリカバリすると、mallocによって割り当てられたメモリも解放されます。

プログラムの実行に伴って全体的なサイズが「無期限に増加する」ことを確認しない限り、特に気にする必要はありません。このような場合は、まず上位レベルのオブジェクトを割り当て/解放する方法を調査し、コード内のどこに問題があるかを理解する必要があります。

+0

ネットの列はありません。スクリーンショットに表示されているものだけが表示されます。「リビングバイト」は、カウントするサイズでなければなりません。だから私の主な質問は:私はそれらのmallocエントリを気にする必要がありますか?はいの場合、彼らは何を表しているのですか?私は出発点を持っています...ありがとう! – swalkner

+0

私の編集をご覧ください。私はそれが少し明確になることを願っています。 – sergio

+0

hm、大丈夫、ありがとうございました...私は、私の特定のケースでは、私はそれらを気にしなければならないということを意味します。 mallocのサイズが増えているので、その理由がわかります。どうもありがとう! – swalkner

関連する問題