我完成了将我的应用程序转换为将CoreData层用于我想要使用的小型数据仓库.我对性能以及如何最好地使用它有一些担忧.特别是:我有很多运行,我从文件中的磁盘属性读取:每个属性应该生成一个新对象,除非该类型的对象和该值已经存在.因此,对于我读取的每个文件,我:执行一次提取以检查该托管对象是否已经存在; 如果是,则完成,否则我创建对象,赋值并保存上下文.
目前,我每次创建一个新对象时都会保存一次上下文,因此对于每个读取的文件(可能是数百个),它会发生或多或少十次(对于十个属性).最好是减少上下文保存点,可能一次用于文件而不是属性一次?我不知道这个操作的开销,所以我不知道是否可以经常这样做,或者如何找出花在这上面的时间(也许用仪器?不知道怎么做).
Tec*_*Zen 11
设置每个属性后无需保存.
通常,只有在代码完成后才能保存托管对象,因为保存会重置撤消.在您描述的设置中,您可以安全地生成数百个托管对象,然后将它们保存到永久存储中.您可以在内存中拥有大量(数千个)轻量级(文本属性)对象,而不会给iPhone带来任何压力.
iPhone上唯一的问题是你永远不知道该应用程序何时被暂停或关闭.这使得保存比在其他平台上更常见.但是,不是你现在使用的程度.
本指南的核心数据性能部分可能有助于您进行规划.Instruments允许您查看Core Data性能的详细信息.
但是,在你用大量数据测试应用程序并发现它很慢之前,我不会做任何事情.过早优化是万恶之源.不要浪费时间试图防止你可能没有的问题.
| 归档时间: |
|
| 查看次数: |
4177 次 |
| 最近记录: |