ARC 下处理内存暴涨的一个解决办法

Posted 若岁月轻狂,愿你可以笑看夕阳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARC 下处理内存暴涨的一个解决办法相关的知识,希望对你有一定的参考价值。

有一种情况:

for (int i = 0; i < 1000000000; i++) {
        
        NSString *s = @"ABC";
        s = [s lowercaseString];
        s = [s stringByAppendingString:@"ac"];
        NSLog(@"%@", s);
    }

 运行, 内存暴涨!!!!!!

 这情况下, 给循环体里面的操作加一个 释放池 即可

 for (int i = 0; i < 1000000000; i++) {
        
        @autoreleasepool {
            
            NSString *s = @"ABC";
            s = [s lowercaseString];
            s = [s stringByAppendingString:@"ac"];
            NSLog(@"%@", s);
        }
    }

 

即每次执行完之后, 系统会自动帮我们立即释放, 这就不会使内存暴涨了

 

以上是关于ARC 下处理内存暴涨的一个解决办法的主要内容,如果未能解决你的问题,请参考以下文章

Webview内存泄漏解决办法2

动态内存分配php

解决python字典结构内存暴涨问题

GitLab 内存暴涨问题解决记录

iOS面试题:啥是arc?(arc是为了解决啥问题诞生的?)

ARC和非ARC文件混编