class_getInstanceSize对象的实际内存大小,大小由类的属性和变量来决定,实际上并不是严格意义上的对象内存大小,因为底层进行8字节对齐算法define WORD_MASK 7UL((x + WORD_MASK) & ~WORD_MASK,LWPerson类中没有其他的属性和变量,但是继承了NSObject,NSObject中有一个isa指针,所以内存大小是8字节 malloc_size系统...
系统分配了16个字节给NSObject对象(通过malloc_size()函数获得),但是NSObject内部只使用了8个字节的空间(64bit环境下,可以通过class_getInstanceSize()函数获得;同时也可以通过 sizeof()运算符来获得)。 在内存中的表现是: 内存表示图 查看ios开源的底层源码,了解class_getInstanceSize()、malloc_size()的执行逻辑:...
size_t class_getInstanceSize(Class cls) 说明:该函数的作用是获取类的实例所占用内存的大小(单位是字节) 1. 以 NSObject 类为例,代码示例如下: size_t size = class_getInstanceSize([NSObject class]); NSLog(@"%zu", size); 在模拟器iPhone 4s和iPhone 5上运行打印结果是4,在iPhone 5s及之后的机型...
sizeof:是一个运算符,获取的是类型的大小(int、size_t、结构体、指针变量等),这些数值在程序编译时就转成常数,程序运行时是直接获取的 class_getInstanceSize:是一个函数(调用时需要开辟额外的内存空间),程序运行时才获取,计算的是类的大小(至少需要的大小) 创建的对象【至少】需要的内存大小 不考虑malloc函数的...