作者neocc (neo)
看板MacDev
标题[问题] 如何清除NSString 记忆体
时间Sat Jun 20 04:00:31 2015
不好意思 又要麻烦各位了..
想请问大家
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记忆体呢?
谢谢大家!~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.207.126
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MacDev/M.1434744034.A.B64.html
1F:→ cryinglove: nsstring 放外面试试看吧,感觉每次都重新建立变数, 06/20 06:30
2F:→ cryinglove: 就一直耗记忆体,两百万次跑起来很恐怖吧 06/20 06:30
3F:推 yoshilin: 传统上local是放stack,即使在block内宣告应该也不会多 06/20 07:55
4F:→ yoshilin: allocate记忆体空间 06/20 07:55
5F:→ yoshilin: 可能是stringWithFormat其实就是new一个heap的object 06/20 07:56
6F:→ yoshilin: 所以要不要试试NSMutableString 06/20 07:57
7F:推 abcdefghi: 非常需要效率和记忆体的地方, 建议还是用C比较好 06/20 10:10
8F:→ tom19830924: 你用 [[NSString] alloc] initWithFormat] 看看 06/20 12:53
9F:→ tom19830924: 我用这他记忆体就不会飙上去了 但是thread会卡就是了 06/20 12:54
10F:→ tom19830924: 这在ARC应该会自动帮你插入release 06/20 12:54
11F:→ Esvent: for(int i=0;i<2000000;i++) @autoreleasepool { 06/20 13:54
12F:→ Esvent: // Your code... 06/20 13:54
13F:→ Esvent: } 06/20 13:55
14F:推 kingof543: Autorease pool 06/26 13:01