2015-02-07 70 views
0

我想让我的算法更快,因为我看到很长的加载时间。我的应用程序从外部数据库加载数千个对象,然后将其保存在设备上。我用我的ipod touch运行了时间分析器,我看到17秒/ 26%的加载时间用于执行NSManagedObjectContexts的save:function。减少NSManagedObjectContect保存时间

我正在使用一个私有类nsmanagedobjectcontext和一个持久性存储协调器。

什么影响节省的时间?如果我保存10次数据的十分之一而不是全部数据一次,哪一个更快?我可以尝试优化节省的时间?

enter image description here

+0

你为什么不试试看? – Paulw11 2015-02-07 23:30:25

+0

描述您的代码如何更详细地工作。例如,你叫'save':只是一次,还是多次? – 2015-02-07 23:44:17

+0

我确实保存了好几次。我获取几批数据,并在每一个数据后执行保存。 – Nilsymbol 2015-02-07 23:50:36

回答

0

你是在正确的轨道上。我发现优化核心数据保存时间的最佳杠杆确实是找到合适的批量大小

正如一位评论者所建议的,最好的方法就是测试一下。没有明确的规则,因为它确实取决于数据的性质,记录的大小和数量等。

其他策略包括使用@autorelease池来优化内存使用并可能改善性能。

让我们知道您的结果!

+0

我最终对数据库做了一些其他巧妙的更改,因此我不再保存任何数量的对象,但我接受了您的答案,因为它可能会对您有所帮助 – Nilsymbol 2015-02-12 20:16:02