我一直在开发 iPhone 应用程序,刚刚开始添加 CoreData 以实现持久性。然而我陷入了一个困境,
上下文:我有名为 Person 的实体,Person 实体有一个属性名称。
任务:更改 Person 对象的名称。(NSManagedObject)
性能测试:哪个选项在性能方面会更快更好?
选项 1:假设对象仅被创建一次
- 从 CoreData 获取对象
- 编辑对象名称
- 保存 NSManagedObjectContext。
选项 2:每次创建新对象。
- 删除之前创建的对象
- 创建新对象
- 保存 NSManagedObjectContext。
注意:我只有一个属性!姓名。想象一下我有一个游戏,用户被要求提供他们的玩家姓名。我知道对于这样一个小任务来说,性能不会有太大差异。但是如果我以后实现一些硬核的东西怎么办?那么对于防守来说,哪一个更好呢?
感谢您的任何意见!
我的想法:这两个选项在性能方面应该相似。由于获取数据以及更新和保存似乎与删除重新创建和保存类似。我希望有人证明我错了。
最佳答案
选项 1 更好,因为选项 2 很疯狂。
我还没有测试性能,但选项 2 似乎不太可能更快,因为创建对象会产生相关开销。但即使选项 2 稍微快一些,它作为一个过程也没有逻辑意义,因此它不是构建代码的好方法。如果它仍然是您所代表的同一个人,则用相同的对象来代表他们。任何其他的事情都会以意想不到的方式让你在赛道上感到头痛,因为你是从一个奇怪的安排开始的。 :)
关于iphone - 这两种方法对性能的影响相同还是不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8102248/