OC底层:
NSObject 基类的实例对象占用多少内存空间?
//内存分配源码
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;
}
理论上来说通过苹果公司内存分配的源码做分析,NSObject的实例(类)对象都会分配至少16byte(bit)内存空间(至少为对象开辟16byte(bit)内存空间(受限于内存对齐分配特性影响))。
实际上由于现有硬件设备的限制,电脑64位操作系统下对NSObject对象只需要分配8bit字节内存空间满足使用,电脑32位操作系统下对NSObject对象只需要分配4bit字节内存空间满足使用。
#import <Objc/Runtime>
Class_getInstanceSize([NSObject Class])
本质
size_t class_getInstanceSize(Class cls)
{
if (!cls) return 0;
return cls->alignedInstanceSize();
}
Obj-C语法体系isa指针所指向的堆内存大小,实际上是16 bit字节(结构内存对齐统一特性导致部分内存未实际使用)
#import <malloc/malloc.h>
malloc_size((__bridge const void *)obj); //堆内存开辟分配
在iOS体系中,内存空间的开辟和分配按照16bit字节的倍数进行。
对象的类:虚拟结构概念体系本身
类对象:虚拟结构概念体系本身规则信息对应的堆内存区
实例对象:instanceofClass实例型对象
硬件集成设备体:入口Input/出口Output-软件集成函数体:I/O入参/出参
CPU中央处理器从内存储区读取渲染数据信息(指令码文件单元先转编译为机器码存入内存中)。