2011-11-12 77 views
0

我一直在開發iPhone應用程序,並開始添加CoreData持久性。然而,我偶然發現一個窘境,這兩種方法的性能影響是否相同?

上下文:我有實體名爲Person,Person Entity有一個屬性名稱。

任務:Person對象的更改名稱(NSManagedObject)

性能測試:哪個選項會更快,更好的性能回事?

選項1:假設對象已經創建僅一次

  1. 獲取對象從CoreData
  2. 編輯對象的名字
  3. 保存的NSManagedObjectContext。

選項2:每次創建新對象。

  1. 刪除以前創建的對象
  2. 創建新的對象
  3. 保存的NSManagedObjectContext。

注意:我只有一個屬性!名稱。想象一下,我有遊戲和用戶被要求提供他們的玩家名字。我知道這樣一個小任務在性能上並沒有太大的區別。但是,如果我以某種硬核的方式實現,會怎樣呢?那麼防守哪一個更好?

感謝您的任何輸入!


我的想法:兩個選項在性能上應該是相似的。由於讀取數據和更新和保存看起來類似於刪除重新創建和保存。我想要有人 證明我錯了。

+0

你爲什麼不試試看和看? – Mankarse

回答

1

選項1更好,因爲選項2是堅果。

我還沒有測試性能,但看起來不太可能,選項2會更快,因爲存在與創建對象相關的開銷。但即使選項2稍微快一點,它作爲一個過程也不合邏輯,所以它不是構建代碼的好方法。如果它繼續是你所代表的同一個人,那麼用同一個對象表示它們。除此之外,其他任何事情都只是以意想不到的方式要求在賽道上頭痛,因爲你是從一個奇怪的安排開始的。 :)