美文网首页
NSObject占用内存大小

NSObject占用内存大小

作者: Shirly_you | 来源:发表于2019-12-03 11:47 被阅读0次
   #import <objc/runtime.h>
   #import <malloc/malloc.h>

    NSObject *fa = [[NSObject alloc] init];
    //一个NSObject实例对象(即指针)所占用8个字节
    NSLog(@"&&&&%zd",class_getInstanceSize([fa class]));//8
    //实例对象(指针)指向的内存大小是16字节 实际分配了16个字节 但是对象只占用了8个字节
    NSLog(@"&&&&%zd",malloc_size((__bridge const void *)fa));//16

    Father *father = [[Father alloc]init];   
    father->_number = 4;
    father->_age = 5;
    NSLog(@"&&&&%zd",class_getInstanceSize([fa class]));//16
    NSLog(@"&&&&%zd",malloc_size((__bridge const void *)fa));//16
实例对象占16个字节(isa8个 number4个 age4个)指针指向的内存是16个字节

内存对齐:我们知道OC对象就是C++结构体,而结构体的大小必须是最大成员大小的倍数,当在多了一个height以后,内存不够用了,然后就需要扩展了。一个int型占4个字节

       Father *father = [[Father alloc]init];
       father->_number = 4;
       father->_age = 5;
       father->_height = 175;
    NSLog(@"&&&&%zd",class_getInstanceSize([fa class]));//24
    NSLog(@"&&&&%zd",malloc_size((__bridge const void *)fa));//32
   实例对象占24个字节(isa8个 number4个 age4个 _height4个 需要8的倍数开辟)指针指向的内存是32个字节
      

相关文章

  • NSObject 占用内存大小

    我们平时编写的Objective-C代码本质上其实都是通过底层的C\C++代码的实现的,而C\C++代码会转变成汇...

  • NSObject占用内存大小

    内存对齐:我们知道OC对象就是C++结构体,而结构体的大小必须是最大成员大小的倍数,当在多了一个height以后,...

  • 内存对齐

    控制台打印 获取内存大小的三种方式 结构体内存对齐 NSObject 属性重排(类的占用大小优化)

  • 1 - NSObject的内存本质

    +一个OC对象在内存中如何布局的? 一个NSObject对象的占用的内存大小 答:系统分配了16个字节给NSObj...

  • Pandas读取文件的效率-CSV VS Pickle

    读取csv文件 查看文件大小 查看本地文件大小 查看占用内存大小 查看每一列占用内存大小 object 类型占用内...

  • NSObject 底层本质

    一、OC 转 C/C++ 二、NSObject 对象内存布局 三、NSObject 内存大小 四、OC 对象内存布...

  • OC对象的本质

    1.一个NSObject对象占用多少内存 NSObject *obj = [[NSObject alloc] in...

  • Runtime(5)--字节对齐原理

    现象 在NSObject中我们可以看到 通过打印NSObject的实例对象obj的内存大小 2020-10-26 ...

  • 一个NSObject对象占用多少内存?

    今天来聊聊NSObject对象占用多少内存的话题。 一.什么是NSObject对象? NSObject *obj ...

  • NSObject

    NSObject对象占用几个字节? NSObject占用至少16个字节、通过malloc_size获取。但是只只用...

网友评论

      本文标题:NSObject占用内存大小

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