文章出處

有一種情況:

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);
        }
    }

 

即每次執行完之后, 系統會自動幫我們立即釋放, 這就不會使內存暴漲了

 

每一百次就釋放:

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()