Objective c 在创建NSMutableData时,内存使用情况不会';不变

Objective c 在创建NSMutableData时,内存使用情况不会';不变,objective-c,automatic-ref-counting,nsmutabledata,Objective C,Automatic Ref Counting,Nsmutabledata,当我创建一个8MBNSMutableData对象时,我的内存使用似乎没有改变。这正常吗 我的代码如下: NSMutableData *myData; myData = [[NSMutableData alloc] initWithLength:(8*1024*1024)]; // init with 8 MB 当我一步一步地调试时,内存使用量保持在5.8MB,即使在分配了对象之后。。。应该升到13.8,是吗?我正在使用ARC(但与MRR相同…) 如果我尝试访问数据,内存使用率保持不变: ui

当我创建一个8MB
NSMutableData
对象时,我的内存使用似乎没有改变。这正常吗

我的代码如下:

NSMutableData  *myData;
myData = [[NSMutableData alloc] initWithLength:(8*1024*1024)]; // init with 8 MB
当我一步一步地调试时,内存使用量保持在5.8MB,即使在分配了对象之后。。。应该升到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;
}
for(inti=0;i)内存使用率现在为13.4MB


谢谢大家的帮助,我现在明白了它的工作原理。

如果你访问数据的字节,它会上升吗?相关:谢谢@Josh Caswell,关于你给出的链接,似乎不是因为你用initWithLength分配内存,所以内存才会真正被使用。但是如果你修改数据,那么内存分配就会增加关于用法的改变。