我想问所有的可可老兵在那里 - 有没有在性能差异的情况下,使用可变与不可变对象之间等:的stringByAppendingString:
与性能的可变与不可变对象
NSString
NSMutableString
的appendString:
NSArray
的arrayByAddingObject:
与NSMutableArray
的addObject:
- ...
谢谢你,快乐的编码!
我想问所有的可可老兵在那里 - 有没有在性能差异的情况下,使用可变与不可变对象之间等:的stringByAppendingString:
与性能的可变与不可变对象
NSString
NSMutableString
的appendString:
NSArray
的arrayByAddingObject:
与NSMutableArray
的addObject:
谢谢你,快乐的编码!
这个问题很难回答:NSArray
和NSString
不是实际的实现,它们是类集群,所以NSMutableArray
和NSMutableString
。下面的真实实现无法确定,因此性能难以比较。 你可能不会找到一个明确的答案。
但我会猜是:stringByAppendingString
和arrayByAddingObject
创建新的对象包含了修改,即当前项目复制到内存中的一个新的地方,NSMutableArray
和NSMutableString
应该有更好的表现,因为他们在建造时,尽可能防止复制(实际上并非如此,因为NSMutableArray
可能会在添加元素时复制内存,但不会每次都添加元素)。
我认为你应该信任这个CoreFoundation编码器:你不想改变对象?使用可变的一个。
非常好的解释。非常感谢,这正是我想知道的。 –
在每个可变和不可变的方法调用之前和之后制作一个带有时间戳记的日志,您可以自己查看哪个更快。 –