私のアプリは、理解するのに苦労している理由で、頻繁にクラッシュしています。クラッシュするほどではありません。外部の「不明な」プロセスによって強制終了されます。
Processes
Name <UUID> rpages recent_max [reason] (state)
test-app <....> 167111 167111 [per-process-limit] (frontmost) (resume)
巨大なメモリブロック、または無数の小さなブロックを割り当てている場合は理解できましたが、それほどとんでもないことは何もしていません。Instrumentsでプロファイリングすると、アプリは約8 MBしか使用せず、大きなコンテンツをロードすると最大13MB程度になることがあります。ひどいリークはなく、アプリはすぐに強制終了されることがよくあります。
同僚がActivityMonitoryを使用して、シミュレーターで実行しているときにアプリのメモリ使用量を確認し始めました。特定のライブラリを使用し始めると、メモリが約70 MB(シミュレーターでは少し異なると思います)から800MB以上に急増したことに気付きました。 。そこで、デバイスではなくシミュレータでプロファイリングを開始しました。割り当てツールは、アプリが8っぽいMBを使用していることを引き続き報告しますが、VMトラッカーは別の話をします。
つまり...VMTrackerは、割り当てでは見られない重要なメモリ使用量を確認できるようです。
このアプリが使用しているメモリの99%が割り当てツールにないのはなぜですか?
更新: nielsbotの質問に答えて、VM Trackerの情報を詳しく調べたところ、割り当てに表示されていないメモリの大部分がCoreAnimationに起因していることがわかりました。