既然设置了ARC,为什么还要使用@autoreleasepool

1、既然设置了ARC,为什么还需要@autoreleasepool,有什么好处?
池子做的是运行时延迟释放,ARC已经在编译时解决了手动管理的问题,那么就没必要使用@autoreleasepool,还占内存。
2、ARC频繁释放内存和@autoreleasepool一起释放感觉还是前者要好些,
这不是像数据连接池一样可以共享资源。只是延迟释放内存(又不能共享内存)。
按着这个推论在ARC条件下,没必要使用@autoreleasepool。
我知道这种想法有问题,但是不知道是哪里,新手问题多,莫喷
撒科打诨
浏览 227回答 2
2回答

狐的传说

用@autoreleasepool是有用的。正常情况下,你创建的变量会在超出其作用域的时候被释放掉。而如果你的函数写的很长,在你函数运行过程中出现很多中间变量,占据了大量的内存,怎么办?用@autoreleasepool。在@autoreleasepool中创建的变量,会在@autoreleasepool结束的时候执行一次release,进行释放。其实@autoreleasepool就相当于一层作用域。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript