【发布时间】:2015-08-19 14:48:37
【问题描述】:
我试图在 for 循环中重现巨大的内存占用。例如,在下面的 for 循环中,如果其中没有自动释放池。这将导致峰值内存占用。
for(int i=0; i< 500000; i++){
NSNumber *test = [NSNumber numberWithInt:i];
}
因为表达式[NSNumber numberWithInt:i]返回一个自动释放对象,如果for循环中没有自动释放,所有自动释放的对象都会被释放一次,这会导致内存占用峰值。
但正如我在 Xcode6 中测试的那样,这个结果并没有重现。我用这个totalSize += malloc_size((__bridge const void *) test); 来计算所有对象的总大小,但我得到了totalSize = 0 结果。
我可以使用[NSString stringWithFormat:@"%d ", i]; 之类的代码重现巨大的内存占用。
谁能解释一下这个问题,提前谢谢。
【问题讨论】:
标签: ios objective-c memory