性能 - NSValue与容器对象中的结构

在我需要将所有数据成员保存在
NSDictionary
的情况下,将结构(自定义类型,甚至是标量,即
CGPoint
)放入我自己的包装器(而不是
NSValue
)中更有意义,因此我可以避免编码的开销/每次我获得或设置会员时解码它? 对于大型结构(16个浮标),IMO的节省是显着的。但即使使用
CGPoint
,我也会节省4个字节的复制时间和编码/解码时间。     
已邀请:
为什么不根据具体情况进行衡量呢?这是找到它的唯一真正可靠的方法。 如果两个选项都不够,你可以通过相应地设置值回调来查看plain4ѭ和指向普通结构的指针,或者使用C ++
std::map
/
std::tr1::unordered_map
进行旋转(如果你不介意在C ++中混合)。     
您可能更进一步:完全放弃结构并使其成为模型对象。然后,您可以将逻辑(例如,计算属性)集成到其中,并使其能够以任何相关格式对自身进行编码和解码,并将其放入集合中。     
好吧,NSDictionary类型无论如何都要求对象作为其成员,因此您无法在NSDictionary中存储结构。您必须将其包装在容器对象中。     

要回复问题请先登录注册