请帮助我解释为什么@autoreleasepool比NSAutoreleasePool快6倍。
然后在转换项目时转到常见问题 - 转到第3个子弹
答案 0 :(得分:1)
最终,这一切都归结为对objc_autoreleasePoolPush和objc_autoreleasePoolPop的调用。那么问题是:[[NSAutoreleasePool alloc] init]需要多少开销;和[池排水];添加这些调用,因为它必须在内部。
答案显然是“相对而言”。它的简单实现必须分配一个完整的对象并释放它,但我们可以放心地假设Apple已经优化了NSAutoreleasePool(例如,通过缓存池实例)。尽管如此,相对于函数调用来说,获取所涉及的对象会有一些开销。