如果我有一个名为'mobjc'的MyManagedObject类,那么在profiler中我可以看到越来越多的:
MyManagedObject_mobjc _
数字可能会有所不同,对于少量数据,例如sqllite中的100个对象,它会增长到该限制并保持不变。
但似乎有时在应用程序生命周期中对象被释放,所以我认为CoreData本身正在进行某种内存优化。 似乎不是整个对象被保留,而是它的“错误”(请原谅我的英文:-))因为实时字节大小。 即使很多故障对象也很难占据记忆。
但此时我想要一些确认:
也许它是相关的,我用于测试的应用程序依赖于ARC和iOS 5.1。
感谢
答案 0 :(得分:2)
在这个SO主题Core Data Memory Management中,您可以找到您要查找的信息。
相反,它是Core Data Memory Managament上Apple doc的链接。
这里有一些提示。
首先,当您处理Core Data时,您需要处理对象图。要减少内存消耗(修剪图形),您可以对正在使用的上下文执行reset
或将对象转换为通过NO
到refreshObject:(NSManagedObject *)object mergeChanges:(BOOL)flag
方法的fauts 。如果您将NO
传递给该方法,则可能会丢失未保存的更改,因此请注意它。
此外,如果您不需要,请不要使用撤消管理。它增加了内存使用(默认情况下在iOS中,没有创建撤消管理器)。
希望有所帮助。