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

时间:2011-11-12 03:05:49

标签: iphone objective-c ios performance core-data

我一直在开发iPhone应用程序,刚开始添加CoreData以实现持久性。然而,我陷入了一个两难的境地,

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

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

性能测试:哪个选项在性能方面会更快更好?

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

  1. 从CoreData获取对象
  2. 编辑对象的名称
  3. 保存NSManagedObjectContext。
  4. 选项2:每次创建新对象。

    1. 删除以前创建的对象
    2. 创建新对象
    3. 保存NSManagedObjectContext。
    4. 注意:我只有一个属性!名称。想象一下,我有游戏和用户被要求提供他们的玩家名称。我知道这样一个小任务的性能差别不大。但是如果我在硬核中实现什么呢?那么对于防守哪个更好?

      感谢您的任何投入!

      <小时/> 我的想法:在绩效方面,两种选择都应该相似。获取数据而不是更新和保存似乎与删除重新创建和保存类似。我希望有人证明我错了。

1 个答案:

答案 0 :(得分:1)

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

我还没有测试过性能,但是选项2似乎不太可能更快,因为创建对象会产生开销。但即使选项2略微加快,它也不具备逻辑意义,因此它不是构建代码的好方法。如果它仍然是您要表示的同一个人,则用相同的对象表示它们。其他任何事情只是以意想不到的方式在赛道上引发头疼,因为你开始时有一个奇怪的安排。 :)