当我创建一个8MB NSMutableData
对象时,我的内存使用量似乎没有变化。这是正常的吗?
我的代码如下:
NSMutableData *myData;
myData = [[NSMutableData alloc] initWithLength:(8*1024*1024)]; // init with 8 MB
当我逐步调试时,内存使用率仍然保持在5.8 MB,即使在分配了对象之后......它应该达到13.8,不应该这样吗?我正在使用ARC(但与MRR相同......)。
如果我尝试访问数据,内存使用情况保持不变:
uint8_t *fBuffer;
fBuffer = (uint8_t *)malloc(8*1024*1024);
[myData getBytes:fBuffer length:8*1024*1024];
事实上,如果我修改了数据,那么内存使用率就会上升!
for (int i= 0 ; i<8000000 ; i++) {
fBuffer[i] = 0x32;
}
=&GT;内存使用量现在为13.4 MB。
谢谢大家的帮助,我现在明白它应该如何运作。