我一直在開發具有核心數據的Cocoa應用程序。最初一切似乎都很好,但是當我將數據添加到應用程序時,我發現初始數據窗口需要很長時間才能加載。爲了解決這個問題,我轉移到另一個沒有數據的啓動窗口,所以啓動很快。然而,無論我做什麼,我的第一次獲取和我第一次嘗試加載數據窗口(使用表視圖)總是很慢。 (也就是說,如果我慢慢讀取數據,然後詢問數據窗口,那麼第一次都會變慢。)然後,性能可以接受。緩慢加載核心數據中的持久性存儲協調器
我追蹤了我的應用程序,發現雖然我可以快速地完成程序,但無論如何,檢索持久性店鋪協調員的步驟非常慢......使用旋轉的沙灘球可能會花費15到20秒。
我讀過其他地方,我可能要進行非規範化的數據。我不認爲這是足夠的。早期的版本在實體之間「相互關聯」要少得多,它在啓動時仍然是一團糟。現在我正在查看可能擁有高達18,000個託管對象的實體。一些關係對於使數據正常工作至關重要。
我也看到了有關使用在後臺單獨的管理對象範圍內的選擇。問題在於,即使是這種背景環境也需要很長時間才能使用。如果用戶試圖運行搜索,他或她仍然會永久等待該上下文加載。當用戶決定要在搜索字段中輸入什麼內容時,我可能會花幾秒鐘購買自己的產品,但我無法承受25秒的停頓時間。
我們注意到:一旦數據被導入到持久性存儲,甚至搜索上是不相關的人(和只有1000個對象)仍需要年齡加載表。原因似乎是協調器檢索本身很慢,而不是實際的獲取或上下文。
任何人都可以點我就如何解決這個正確的方向?謝謝!
18,000不是很大......它實際上是非常小的核心數據...不幸的是,你沒有提供足夠的信息。加載PSC可能涉及很多事情,如遷移等。此外,獲取與PSC的初始創建無關,所以我很困惑你爲什麼混合了PSC和獲取。也許如果你展示了一些代碼,以及代碼的哪些部分將會消失很長時間,這將有所幫助。否則,你得到的答案將是純粹的猜測。 –
同意Jody。你必須提出一個更具體的問題。如果你的論文是正確的,並且是PSC,請修改問題以顯示如何創建它。 – Mundi
打開商店同步訪問文件系統。如果你能幫助它,不要從主隊列中打開商店。 – quellish