0

iOS でのメモリ管理、または複雑なメモリ使用量のより正確な監視に本当に苦労しています。

したがって、実際には、ゾンビモードで一度提供される割り当て手段(ゾンビを探しているとき)と、一般に「通常の」割り当て手段(メモリ->割り当てから選択可能)について疑問に思っています。

Zombies を検索している場合、割り当てツールは、その時点で割り当てられているストレージの数がまったく異なることを示しています (ライブ バイト)。UI をクリックするたびに、ライブ バイトが大幅に増加しています。

しかし、通常の割り当てウィンドウ (メモリ -> 割り当て) では、すべてが (ほぼ絶対に) うまくいっているようです。したがって、1.13 MB のライブ バイトが割り当てられますが、UI を数回クリックするだけで 4 ~ 5 MB に到達できる上記の説明とは対照的に、これは割り当てられたバイトの最大値です。だから私には本当に奇妙に思えます。

通常の割り当てウィンドウでは考慮されない、ゾンビ -> 割り当てにもっと重要なものはありますか?

注: 私のプログラムにはゾンビやリークはありません。

4

1 に答える 1

2

Zombies 機能を理解している限り、Instruments でのリークとオブジェクト割り当てとは相互に排他的であると見なされます。

実際、ゾンビ (Instruments または NSZombies ディレクティブ) を有効にすると、オブジェクトの「通常の」保持サイクルがだまされて、既に割り当て解除されたオブジェクトを使用しようとする試みを検出できるようになります。ある意味、詳細はわかりませんが、保持カウントが1つ増えると、保持カウントが1になると、既に割り当て解除されたインスタンスを使用しようとするとエラーが発生するようなものです. 実際、保持カウントがゼロになる可能性がある場合、オブジェクトは割り当て解除され、ほとんどの場合、再使用の試みを検出することは不可能です。他のオブジェクトに再割り当てされました。したがって、保持カウントの人為的な増分は、オブジェクトがその「

これは私のメンタル モデルにすぎませんが、ゾンビが有効な場合にメモリ割り当てがはるかに高くなる理由を説明できます (つまり、通常の場合のようにオブジェクトの割り当てが解除されないためです)。

于 2011-07-02T15:15:00.870 に答える