【发布时间】:2016-08-19 19:10:18
【问题描述】:
我已经阅读了很多关于 @autorelease pool 的博客,但我仍然不清楚目标 c 或 ios 开发中的这个 @autorelease pool 概念。
那么任何人都可以阐明这个概念。 如果有人可以为我提供一个示例以及何时需要使用@autorelease pool,那将对我非常有帮助。
如何使用@autorelease 池和不使用它来测量内存分配。
请说明这个话题可能是重复的。
【问题讨论】:
-
Here 它说明了为什么 ARC 需要
Autoreleasepool -
我认为它仅在存在标有 __autoreleasing (see this) 的对象时才有用。所以这些类型的对象只有在你的应用程序主自动释放池结束时才会被释放,但如果在短时间内创建了很多,你可能会耗尽内存,所以你可以战略性地放置自己的自动释放池这样自动释放的对象就不会堆积起来,给你一个内存不足的错误
-
当我使用@autorelease 池和不使用它时,如何在实际示例中测量内存利用率
-
将不得不考虑使用 xcode 分析工具,但 99% 的时间你不应该需要自己的自动释放池,ARC 通常可以很好地处理事情(除非你保留自动释放池无济于事的循环)
-
感谢您的快速回复:)
标签: ios objective-c memory-management automatic-ref-counting nsautoreleasepool