我有一个游戏循环,我把它放在另一个循环中,如下所示:
for (int i = 1; i <= 10000; i++)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
Game *game = [[Game alloc] init];
while ([game isActive])
[game nextRound];
[game release];
[pool release];
}
但我在活动监视器中注意到实际使用的内存无限增长,当应用程序达到大约 1GB 内存时最终崩溃。Instruments 没有报告任何泄漏。clang 静态分析器也没有报告泄漏。
我的问题是:
- 仪器是否总能发现所有内存泄漏?
- 内存无限增加还有其他原因吗?
编辑:
正如@Phillips 所指出的,原因是僵尸标志!关闭后,内存占用如预期。