1

アプリのメモリが常に Xcode 5 で増加するという問題がありますが、一方で、リークやメモリの過剰割り当てなどの原因となるものは何も見つかりませんでした。

もちろん、間違ったスタッフを 100% 検出できる自動デバッグ ツールはないことは理解しています。

私はコードの簡単な平和を作りました:

- (IBAction)buttonTapped:(id)sender {

    for (int i = 1; i < 5000; i ++) {
        NSLog(@"i equeal %d", i);
    }

    return;        
}

プロジェクトを起動し、ボタンを 3 回押したところ、次の結果が得られました。

ここに画像の説明を入力

ご覧のとおり、タップするたびにメモリが常に増加しますが、なぜですか? 私は本当に疑問に思っています - 実際、この図は何のために、なぜそれが起こるのでしょうか?

Allocations テンプレートによるプロファイリングでは、特別なことは何も表示されませんでした。

ここに画像の説明を入力

4

1 に答える 1

0

一番上のグラフは、Activity Monitor Instrument に表示される「実際のメモリ使用量」と同じになります。私は専門家にはほど遠い (そして、非常に簡単に間違っている可能性があります) が、私の理論では、OS がアプリケーション用に余裕のあるメモリを持っている限り、(アプリケーションが要求したときに) アプリケーションが使用できるようにします。OS は、アプリが近い将来メモリを必要とするかどうかわからないため、そのメモリをすぐには回収しません。したがって、OS がアプリに割り当てた使用可能なメモリの合計は、割り当てごとに増加します (OS に割り当てるメモリがあると仮定します)。

私のアプリの 1 つで、任意の時点で割り当てられたメモリは約 110 メガバイトですが、アクティビティ モニターによって表示される実際のメモリ使用量は 160 メガバイトです。アクティビティモニターについてはあまり心配しないでください。メモリ警告が表示されると、OS によってメモリが解放されます (実際にはメモリを使用しておらず、アプリがクラッシュしていないと仮定します)。

于 2013-10-16T13:43:12.183 に答える