美文网首页iOS面试
NSObject对象在内存中占用多大空间

NSObject对象在内存中占用多大空间

作者: cf87744ea7b3 | 来源:发表于2019-11-09 22:09 被阅读0次
NSObject *obj = [[NSObject alloc] init];
  • 在编译后是一个结构体。
struct NSObject_IMPL {
    Class isa;
}

obj作为指向结构体的指针,在内存空间中占用的是8个字节。

  • 通过oc的源码查看alloc的实现,对oc对象的大小有最小的要求,即16个字节。
size_t instanceSize(size_t extraBytes) {
    size_t size = alignedInstanceSize() + extraBytes;
    // CF requires all objects be at least 16 bytes.
    if (size < 16) size = 16;
    return size;
}
  • 结论:

对象本身占用的是8个字节
系统分配的是16个字节

我们也可以通过#import <objc/runtime.h>class_getInstanceSize()方法和#import <malloc/malloc.h>malloc_size()方法来查看具体的内存大小

相关文章

网友评论

    本文标题:NSObject对象在内存中占用多大空间

    本文链接:https://www.haomeiwen.com/subject/htfobctx.html