400 ~ 500 個のファイルをダウンロードして解凍XML
し、解析するという大規模な同期プロセスがあります。このデータを使用して、RestKit API
. 自動解放プールを使用せず、最後にコア データのみを保存しようとしたため、最初は 450 MB 以上のライブ バイトでメモリ警告が表示されました。
私はそれを修正し、コアデータに頻繁に保存し、 @autoreleasepool
ブロックを使用しました。インストルメントを使用してアプリを実行すると、ライブ バイトが 20 MB ~ 30 MB しかなく、常にメモリが解放され、サイズが大きくならないことがわかります。プロセスは機能します。しかし、インストゥルメントなしでアプリを起動すると、ファイルを表示した後にMemory Warning
. 後でアプリがクラッシュします。
instruments
ツールを使用する場合と使用しない場合のアプリの実行の違いは何ですか? なぜ異なる結果に終わるのですか?