6

iOS アプリのプロファイリング中に、スタックからビューをプッシュおよびポップし、ヒープショットを取得する単純なタスクを複数回実行します。毎回同じコードが実行され、プッシュされたビューには、ビューがポップされるとすぐに削除されるいくつかの画像が含まれています。

楽器のスクリーンショット

ヒープショットのほぼ半分で永続的なカウントが 0 であるため、放棄されたメモリがないと想定しても安全でしょうか?

永続的なカウントが 0 より大きい行は、内部キャッシュが原因である可能性があると聞いたことがあります。

Xcode 4.2.1 を使用しており、アプリは ARC を使用しています。

編集:

Kendall Helmstetter Gelner のおかげで、この問題をさらにデバッグすることができました。これをデバッグするためにシミュレーターを使用するべきではなかったでしょう。デバイスで実行したところ、リリースされていないオブジェクトが 1 つあるように見えます。

デバイスで実行中のアプリのヒープショット

拡張された詳細ビューを調べた後、問題の原因をほぼ見つけたと思います。

4

1 に答える 1

2

そのスクリーンショットだけでは、何がキャッシュされているかどうかを判断するのは困難です.UIImageは何かをキャッシュし、おそらく他のシステム要素もキャッシュします. シミュレーターで実行しているようですが、デバイスでヒープショットを試しましたか?

また、横にある [システム ライブラリを非表示] を選択して、自分のコードがどの程度含まれているかを把握することもできます。

于 2012-02-03T06:33:30.333 に答える