我输入约5000个记录,约10个字段.这不是很多的数据.
我插入的每个对象与各种其他对象(总共6个关系)具有一对一的关系.所有这些记录合计少于20个字段.没有图像或任何二进制数据或任何可以看到的东西,这将证明为什么WAL文件的最终大小是如此之大.
我读了描述wal文件的sqlite文档,我看不出这可能如何发生.源数据不超过50 MB.
我的应用程序是多线程的.
我在执行导入(创建和保存核心数据对象)的后台线程中创建一个托管对象上下文.
没有在这里编写代码,有没有人遇到这个?任何人都有一个想法,我应该检查什么.代码不是超级简单,所有的部分都需要时间来输入,所以让我们从一般的想法开始.
我会让任何让我走向正确的人.
额外信息:
>我已经禁用了撤销管理器的上下文,因为我不需要(我认为默认情况下在iOS上是零,但我显式设置为nil).
>我只在整个循环完成之后调用保存,所有被管理的对象都在ram中(ram达到100 MB btw).
>核心数据对象的循环和创建只需要5秒左右.在写入文件时,保存需要花费近3分钟的时间.
>这个问题
>使用migratePersistentStore API时数据库迁移的问题
>轻量级迁移的问题
也许我们应该启动一个核心数据WAL问题页面,并获得一个全面的列表,并要求苹果修复错误.
请注意,OS X 10.9和iOS 7下的默认模式现在使用WAL模式.要更改此选项,请添加以下选项
@{ NSsqlitePragmaOptions : @{ @"journal_mode" : @"DELETE" } }总结
以上是内存溢出为你收集整理的ios – Core Data sqlite-wal文件在插入〜5000行时会获得MASSIVE(> 7GB)全部内容,希望文章能够帮你解决ios – Core Data sqlite-wal文件在插入〜5000行时会获得MASSIVE(> 7GB)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)