与一个NSDictionary相比,三个属性的内存效率

时间:2013-04-10 19:03:53

标签: performance cocoa declared-property

我想将一些数据传递给我的对象,对我来说有两种选择。

关于记忆 - 什么更有效?声明三个属性或使用NSDictionary声明一个initWithCapacity:3

2 个答案:

答案 0 :(得分:2)

声明3个属性将使用更少的内存,并且比使用NSMutableDictionary更高效。

使用属性还可以使代码更易于阅读,并允许编译器帮助您进行类型安全。

另一个考虑因素是,您无法将nil存储在集合中。

编辑:

就内存而言,您提到的两个选项之间的唯一区别是NSDictionary在堆中需要自己的内存。对象本身仍然需要堆中的相同内存。

答案 1 :(得分:2)

我会主张使用属性,但不是因为性能问题;仅仅因为我认为它更具可读性且不易出错 - 您可以通过使用键常量使字典方法清晰,但这是额外的工作。

对我而言,这里的底线是,直到乐器向您展示您在这些物体上花费了大量时间或记忆,您应该走可读性和清晰度的道路。如果你削减几个周期或几个字节,那么它是不太可能的。但即使它确实如此,重构您为三个参数的对象初始化所采用的方法也不会是一项巨大的工作。