有关自动释放池的内存堆积问题

来源:互联网 发布:淘宝联盟拍了却没订单 编辑:程序博客网 时间:2024/05/16 03:58
@autoreleasepool {        for (long i = 0; i < 1000000000; i++) {                Person *per = [[Person alloc] init];                [per autorelease];        }    }<pre name="code" class="objc">此时会造成内存堆积,因为for循环所alloc出来的所有堆区空间内存只有在出了该自动释放池才被统一释放<pre name="code" class="objc">解决方案:
@autoreleasepool {        for (long i = 0; i < 1000000000; i++) {            @autoreleasepool {                Person *per = [[Person alloc] init];                [per autorelease];            }        }    }<pre name="code" class="objc">每循环一次所alloc出的堆内存空间在出了离他最近的自动释放池之后,立即释放

0 0
原创粉丝点击