NSObject内存大小

类的本质是结构体 无须赘述

struct NSObject {
Class isa;
};

一个类对象的实例大小是8个字节

之所以打印出的16个字节,是因为一个NSObject 最小开辟16个字节

    NSObject *obj = [[NSObject alloc]init];// class_getInstanceSize  这是runtime 获取一个类对象的实例大小的方法// 打印结果是 8NSLog(@"%zd",class_getInstanceSize([NSObject class]));// 对象指针的大小//  /* Returns size of given ptr */// 打印结果是16NSLog(@"%zd",malloc_size((__bridge const void *)obj));

int 类型的占有4个字节,isa 类型的占有8个字节,定义一个对象,有3个int 属性,实际大小为 8 + 3 * 4 = 20 字节,则打印出的类对象大小为 24个字节,而开辟的指针内存应该是32个字节。

因为内存对齐的规则,要从4的整数倍地址开始存储, 所以是有4个byte是空的,所以打印出来是24个字节。

@interface StudentA : NSObject{@publicint _age1;int _age2;int _age3;//    NSString * _lastname;
}@endStudentA *a = [[StudentA alloc]init];    // 打印结果是24NSLog(@"%zd",class_getInstanceSize([StudentA class]));// 打印结果是32NSLog(@"%zd",malloc_size((__bridge const void *)a));    

iOS NSObject对象内存大小相关推荐

  1. Java对象内存大小计算

    背景 今天办公室两个人事妹子因为一道Java试题各持己见,誓死捍卫自己的答案(对,是HR没错 -- 程序猿快没活路了). 题:字符串 "7天学会JAVA" 占用的内存空间是 ( ) ...

  2. java char占用多少字节_Java虚拟机:Java对象大小、对象内存布局及锁状态变化

    一个对象占多少字节? 关于对象的大小,对于C/C++来说,都是有sizeof函数可以直接获取的,但是Java似乎没有这样的方法.不过还好,在JDK1.5之后引入了Instrumentation类,这个 ...

  3. Java对象内存空间大小计算

    一.查看基础类型的对象内存大小 八股文中很明确的告诉你了基础类型的大小 ,如下图: 类型 值大小(byte) 对象内存大小(byte) 备注 byte 1 16 char 2 16 int 4 16 ...

  4. 1 OC 对象的本质(一个NSObject 对象占用的内存大小)

    1 前言 目录 1 前言 2 一个NSObject占用多少内存 3 为什么呢 ? 4 如何在内存中看呢? OC 的面向对象都是基于C/C++ 的数据结构实现的 结构体 2 clang 命令转换成c++ ...

  5. 一个NSObject对象占多少内存?

    以下都是在64bit环境下操作: 我们平时编写的Objective-C代码,底层实现其实都是C\C++代码 在这里我们将main.m 使用clang转成c++文件,也就是在终端输入 xcrun -sd ...

  6. 2 OC 对象的本质(一个Student 占用的内存大小)

    一 Student 占用的内存空间 补充: 1 成员变量占用字节的大小: 2 内存对齐的规则:结构体的内存大小必须是最大成员变量的内存的倍数. 一个 Student 类,继承自NSObject,有两个 ...

  7. C# 利用WMI对象获取物理内存和可用内存大小

    下面的代码演示的是使用WMI对象可获取取物理内存和可用内存大小,在使用WMI对象前,先要添加对System.Management的引用,然后就可以调用WMI对象,代码如下: //获取总物理内存大小Ma ...

  8. Java计算一个对象所占内存大小_Java程序计算各种对象所占内存的大小的方法

    System.out.println("--- Memory Usage:"); /*打印一行字符串---Memory Usage*/ Runtime rt=Runtime.get ...

  9. 深度探索C++ 对象模型(2)-类的对象的内存大小_2

    继续上文,看看继承类的大小 1. Bear类 类对象的大小为24: 16+8 class Bear : public ZooAnimal { public:Bear() {};~Bear() {}; ...

最新文章

  1. 科大星云诗社动态20210311
  2. 京东数据产品专家分享“如何转行数据产品经理​?”
  3. 如何编写一份合格的测试计划
  4. 二维haar小波matlab_洪泽湖入湖水沙序列的多时间尺度小波分析
  5. 1201-统计数字问题
  6. IOS自己主动布局中的浮动布局(6)----MyFloatLayout横空出世
  7. 给WP7初学者:《WP7 Dev Quick Start系列视频》
  8. 原生javascript的树形插件tree.js(纯原生js,无需引用其他js)
  9. 最好用的jQuery日期插件合集,前端设计必备素材
  10. 电脑下载了自动捆绑怎么办?一招秒杀!
  11. 保留小数 Java Decimals
  12. 使用ESP8266驱动TFT显示屏
  13. [11.02] 猴猴吃香蕉
  14. 自增,自减(java为例)
  15. Android组件系列——Content Provider
  16. 学习黑盒优化算法CMA和RandomSearch,借助阿里达摩院MindOpt的RABBO榜单【系列2/4】
  17. 差异分析流程(一)数据预处理
  18. 数据中心如何安全渡过炎炎夏日
  19. iText生成pdf文书
  20. 日本最大的社交APP Line的服务架构(1)

热门文章

  1. [转]Ext Grid控件的配置与方法
  2. POJ1001--Exponentiation(幂计算)翻译
  3. 【转载】图像缩放与插值理论基础
  4. 【OpenCV】图像/视频相似度测量PSNR( Peak signal-to-noise ratio) and SSIM,视频/图片转换
  5. 三维重建【三】-------------------(三维重建资料收集)
  6. google breakpad native crash分析工具
  7. Linux系统的大小端模式
  8. 关闭页面不用提示的方法
  9. 使用VS.NET2003编写存储过程
  10. Shell脚本基础介绍