この問題は現在一般的なものであり、コードでは混乱することはありません。コアデータ過大なVM:SQLiteページキャッシュ
私は、コアデータ(sqlite
)をデータストアに使用するiOSアプリケーションを使用しています。モデルはかなり複雑で、オブジェクトの階層構造が大きくなっています。これらの大きなデータセットをフェッチしてインポートすると、メモリ警告のためにしばらくしてからアプリケーションがシャットダウンすることに気付いています。
割り当てプロファイラでは、過度の「一時的な」VM:SQLite
ページオブジェクトが表示されます。このサイズは成長し続けていますが、決してダウンしません。私はNSManagedObjectContext
のすべてのセーブがperformBlock呼び出し内で確実に行われるようにしました。
オブジェクトのコンテキストが解放されたりリセットされたりしていないように見えます。
NSManagedObjectContext
でundoManagerを無効にしようとしました。 stalenessIntervalを非常に低い値(1.0)に設定し、インポート時にデータを保存した後でMOCのresetを呼び出します。
一時的なVM SQLite
ページキャッシュが高値を維持し続けると、これはどういう意味ですか? ページキャッシュを下げるために何をする必要がありますか?
このキャッシュが大規模なCore Dataアプリケーションに到達するには、どの程度の大きさがありますか?
おかげで、
解決策は見つかりましたか?私はちょうど同じ問題に直面している。 –
ちょうど以下の質問に答えた。 – dmclean