[问题] 如何清除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