[問題] 如何清除NSString 記憶體

作者: neocc (neo)   2015-06-20 04:00:31
不好意思 又要麻煩各位了..
想請問大家
for(int i=0;i<2000000;i++)
{
NSString *KeyR;
NSString *KeyG;
NSString *KeyB;
KeyR = [NSString stringWithFormat:@"%d", 1];
KeyG = [NSString stringWithFormat:@"%d", 2];
KeyB = [NSString stringWithFormat:@"%d", 3];
}
我跑這段的時候 記憶體大大增加
請問要怎麼在每一個loop的時候 清除NSString記憶體呢?
謝謝大家!~
作者: cryinglove (毓™)   2015-06-20 06:30:00
nsstring 放外面試試看吧,感覺每次都重新建立變數,就一直耗記憶體,兩百萬次跑起來很恐怖吧
作者: yoshilin (明明可以靠臉吃飯)   2015-06-20 07:55:00
傳統上local是放stack,即使在block內宣告應該也不會多allocate記憶體空間可能是stringWithFormat其實就是new一個heap的object所以要不要試試NSMutableString
作者: abcdefghi   2015-06-20 10:10:00
非常需要效率和記憶體的地方, 建議還是用C比較好
作者: tom19830924 (Tom Hsu)   2015-06-20 12:53:00
你用 [[NSString] alloc] initWithFormat] 看看我用這他記憶體就不會飆上去了 但是thread會卡就是了這在ARC應該會自動幫你插入release
作者: Esvent (Esvent)   2015-06-20 13:54:00
for(int i=0;i<2000000;i++) @autoreleasepool {// Your code...}
作者: kingof543 (中肯不嘴炮)   2015-06-26 13:01:00
Autorease pool

Links booklink

Contact Us: admin [ a t ] ucptt.com