2015-02-07 107 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