创建NSMutableData时,内存使用情况不会发生变化

时间:2015-10-10 19:06:11

标签: objective-c automatic-ref-counting nsmutabledata

当我创建一个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。

谢谢大家的帮助,我现在明白它应该如何运作。

0 个答案:

没有答案