2014-04-04 64 views
1

執行輕量級遷移後,我的一些奇怪的核心數據問題 - 我的iPad應用程序正在使用版本化數據模型,現在我正在遷移到另一個數據模型,只進行一次更改:給實體添加一個屬性。遷移過程沒有任何問題,並且在完成過程後,我可以運行所有已遷移數據的應用程序 - 唯一的問題是每個保存請求比遷移之前花費的時間多10倍。遷移後緩慢的核心數據性能

  • 我檢查遷移過程的核心數據記錄 - 沒有錯誤中列出
  • 核心數據的日誌(SQL查詢)是相同的移民前後,慢
  • 我已經打開SQLite的只是更多外部sqlite查看器中的數據庫 - 遷移前的查詢時間與遷移後的時間相同。
  • 我已經爲遷移後的永久性存儲添加了NSSQLiteManualVacuumOption,核心數據的性能稍微好一點,但在遷移之前仍然慢得多。

請問這裏有什麼可能會出錯的嗎?如何從遷移之前恢復性能?

+1

您是否嘗試過全新安裝,直接使用新模型設置持久性存儲而不是遷移舊模型,以確認它實際上是遷移?您是否使用'-com.apple.CoreData.SQLDebug 1'運行以準確查看Core Data正在運行的查詢?如果是的話,那裏有什麼奇怪的東西嗎? – Tommy

+0

儀器對性能有何評論?速度在哪裏?你有一個樂器配置文件可以分享嗎? –

+0

@Tommy是的,爲當前模型運行新鮮的應用程序工作正常,我也調查了com.apple.CoreData.SQLDebug - 所有內容都與遷移之前相同。 – mprostak

回答

0

猜猜我找到了解決方案。我已經用非常基本的自定義遷移取代了自動輕量級遷移 - 只需Xcode生成的模型映射 - 現在一切都像魅力一樣。看起來像自動輕量級遷移機制不能正確處理我的持久性存儲的模型和數據,這很奇怪,因爲我沒有收到任何警告或錯誤。 感謝您的幫助。