Ios 海量文本文件、NSString和核心数据

Ios 海量文本文件、NSString和核心数据,ios,objective-c,core-data,memory,text-files,Ios,Objective C,Core Data,Memory,Text Files,我对这个问题已经摸了很久很久很久了,但我仍然没有找到一种有效的方法来做到这一点,同时又不使用太多内存(在iOS上,内存非常有限) 我基本上有非常大的纯文本文件(平均15MB),然后需要解析并导入核心数据 我当前的实现是在核心数据上有一个Article实体,它与页面实体具有“多”关系 我还使用了这一行读取器库的稍加修改的版本: 当然,我创建的页面实体越多,我创建的内存开销就越大(在实际的NSString行之上) 无论我对每页的行数或每行的字符数做了多少调整,内存使用都会变得非常疯狂(~300MB+

我对这个问题已经摸了很久很久很久了,但我仍然没有找到一种有效的方法来做到这一点,同时又不使用太多内存(在iOS上,内存非常有限)

我基本上有非常大的纯文本文件(平均15MB),然后需要解析并导入核心数据

我当前的实现是在核心数据上有一个Article实体,它与页面实体具有“多”关系

我还使用了这一行读取器库的稍加修改的版本:

当然,我创建的页面实体越多,我创建的内存开销就越大(在实际的NSString行之上)

无论我对每页的行数或每行的字符数做了多少调整,内存使用都会变得非常疯狂(~300MB+),而仅仅将整个文本文件作为一个字符串导入,很快就会达到180MB的峰值,并在几秒钟内完成,前者需要几分钟

行读取器本身在这里可能有问题,因为我在托管上下文中刷新完成后的页面,据我所知,这应该会将它们从内存中释放出来

不管怎样,有没有人对我应该如何实现这一点有任何笔记、技巧或想法?理想情况下,我希望有对页面的支持,因为我无论如何都需要能够导航文本,而且以后将整个文本加载到内存中听起来并不是很有趣

注意:文章和页面实体方法在导入后可以正常工作,但导入本身的内存使用量太大了


编辑:出于某种原因,从上下文中删除文章实体时,核心数据也会消耗约300MB的内存。关于为什么会发生这种情况,或者如何补救,有什么想法吗?

使用仪器查看哪些对象占用了所有内存以及是什么创建了这些内存。虽然我还没有用过仪器,但我可以看到,在我为当前文章添加一个页面后,在后台调用save和refreshObject:Page mergeObjects:NO,内存使用率仍然很低。然而,没有什么可以通过这种方式保存。然后再次说mergeObjects:YES(或者根本没有那一行)会导致内存崩溃。