oop*_*ogy 12 objective-c cocos2d-iphone nsarray
NSArray和CCArray有什么区别?另外,在什么情况下,对于游戏编程,一个人会更喜欢另一个?
Lea*_*s2D 20
CCArray模拟NSMutableArray.它是C数组(内存缓冲区)的包装器.它是由cocos2d开发并在内部使用的,因为NSMutableArray被认为太慢了.然而,性能提升很小.cocos2d本身不使用的CCArray的任何用例(功能)仍然是潜在的问题来源,包括奇怪且难以调试的问题或可怕的性能特征.
最重要的性能关键方面是读取阵列顺序.在我最近的测试中,这是CCArray(不再是?)擅长的领域.特别是快速枚举:NSMutableArray快了大约33倍!
CCArray是一个完美的例子,为什么不应该重新发明轮子,特别是在存储类已经存在稳定,可靠且快速的解决方案时(NSMutableArray).它曾经拥有的任何速度优势早已消失.剩下的是您不想处理的运行时行为,包括一些非常糟糕的性能特征(插入,快速枚举).
长话短说:不要在自己的代码中使用CCArray!将CCArray视为不在用户代码中使用的内部私有类(除非在不可避免的情况下,即子数组).
NSMutableArray是每个人都应该使用的数组引用实现,因为它经过了极好的测试,记录和稳定(在运行时行为和速度方面).
| 归档时间: |
|
| 查看次数: |
1975 次 |
| 最近记录: |