1

こんにちは私はInstrumentsで多くのヒープの成長に気づいたので、割り当てられたメモリに問題があります。そこで、テストアプリを設計しました。

テストアプリには2つのViewControllerが含まれ、それぞれに1つのボタンがあります。First ViewControllerは、Segue Modalを介してSecondViewControllerにリンクされていました(自動生成のほかに、コードはまったくありません)。

2番目のViewControllerには機能しかありません

 -(IBAction)back:(id)sender{
      [self dismissModalViewControllerAnimated:YES];
}

だから私はスロービューを反転させることができました。

Instrumentでテストすると、2番目のビューに戻って戻った後、ヒープの増加に気づきました。

ここに画像の説明を入力してください ここに画像の説明を入力してください

それはどのように可能ですか?私は何が欠けていますか?

4

1 に答える 1

1

ヒープのサイズは、アプリのメモリ使用量ではありません。

アプリが稼働している場合、カーネルはメモリを割り当てる必要があります。
最新のシステムは仮想メモリを使用しています。基本的に、これらは物理アドレスを仮想アドレスにマップし、プロセスがアクセスします。

このマッピングはカーネルによって処理され、そのためのメモリが必要です。

1MBのメモリを要求する場合は、アドレススペースのサイズを大きくして、割り当てられた物理ページを追跡するためにメモリを割り当てる必要があります。

すべてのメモリを解放すると、カーネルは通常、マッピングに使用されたメモリを保持し、次の割り当てに再利用して、スペースを再割り当てする必要をなくします。

これが、ヒープサイズが変わらない理由です。ただし、アプリケーションのメモリ使用量を示すものではありません。

Instrumentsを使用している場合は、VMトラッカーツールを参照してください。

于 2013-01-09T09:18:11.453 に答える