这两种方法的性能影响是否相同?

问题描述:

我一直在开发iPhone应用程序,并开始添加CoreData持久性。然而,我偶然发现一个窘境,这两种方法的性能影响是否相同?

上下文:我有实体名为Person,Person Entity有一个属性名称。

任务:Person对象的更改名称(NSManagedObject)

性能测试:哪个选项会更快,更好的性能回事?

选项1:假设对象已经创建仅一次

  1. 获取对象从CoreData
  2. 编辑对象的名字
  3. 保存的NSManagedObjectContext。

选项2:每次创建新对象。

  1. 删除以前创建的对象
  2. 创建新的对象
  3. 保存的NSManagedObjectContext。

注意:我只有一个属性!名称。想象一下,我有游戏和用户被要求提供他们的玩家名字。我知道这样一个小任务在性能上并没有太大的区别。但是,如果我以某种硬核的方式实现,会怎样呢?那么防守哪一个更好?

感谢您的任何输入!


我的想法:两个选项在性能上应该是相似的。由于读取数据和更新和保存看起来类似于删除重新创建和保存。我想要有人 证明我错了。

+0

你为什么不试试看和看? – Mankarse

选项1更好,因为选项2是坚果。

我还没有测试性能,但看起来不太可能,选项2会更快,因为存在与创建对象相关的开销。但即使选项2稍微快一点,它作为一个过程也不合逻辑,所以它不是构建代码的好方法。如果它继续是你所代表的同一个人,那么用同一个对象表示它们。除此之外,其他任何事情都只是以意想不到的方式要求在赛道上头痛,因为你是从一个奇怪的安排开始的。 :)