私は Instrument のメモリ使用量の追跡について多くのことを読んできましたが、Monotouch との組み合わせはほとんど見つかりませんでした。
ここには 3 つの相反する主張があるようです。
- InstrumentsのAllocationユーティリティを使用します。「ライブ バイト」の数は、アプリケーションによって使用される物理メモリの量です。
- メモリ モニタープラグインを使用します。プロセスのリストからアプリを選択し、[実メモリ] 列を確認します。これは、現在使用中の RAM の量です。
- VM トラッカーを使用して、自動スナップショットを作成します。あなたが求めているものなら「ダーティサイズ」。
私が気づいたことから:
- GC がトリガーされるとすぐに「リアル メモリ」が低下する
- 「Live Bytes」が約 30MB のままであっても、最終的にはメモリ警告が表示されます
- 「Live Bytes」が一定の場合、「Real Memory」は大幅に増加し、簡単に 200MB 以上に増加します。
- QLPreviewController を使用して非常に大きな Word ドキュメント (1000 ページ) を表示しているときに、そのドキュメントをスクロールすると、実際のメモリが狂ったように増加します。メモリ警告が受信された場合、実メモリもライブ バイトもドロップしません。最終的に、アプリはクラッシュします。Monotouch の問題か、Apple の問題か?
- ときどき、実記憶が増大しているように見え、それを止めることはできません。繰り返しになりますが、GC はその大きなチャンクをクリアしているようです。これには実際のパターンはありません。
それで、正しい答えは何ですか?正確に1つありますか?
編集:2つの画像を添付しました。アプリの寿命の途中の段階でのメモリ使用量と、それ以降の秒数を示すもの。両方の画像は、画面上に 2 つのコントローラーしかない UI の同じポイントでのメモリ使用量を反映しています。たぶん、誰かがそれらの番号から読み取れるもの、特に魔法の「メモリータグ70」についてコメントできるかもしれません.