2 OC 对象的本质(一个Student 占用的内存大小)
一 Student 占用的内存空间
补充:
1 成员变量占用字节的大小:
2 内存对齐的规则:结构体的内存大小必须是最大成员变量的内存的倍数。
一个 Student 类,继承自NSObject,有两个属性,首先要知道,int 类型占用的字节是4个字节
以下打印结果都是16 ,一个int 类型的成员变量占用4个字节,两个占用8个字节,加上父类的isa 指针,一共16个字节
#import <Foundation/Foundation.h>#import <objc/runtime.h>
#import <malloc/malloc.h>@interface Student:NSObject
{@publicint _no;int _age;
}
@end@implementation Student@endint main(int argc, const char * argv[]) {@autoreleasepool {// insert code here...NSObject *obj = [[NSObject alloc]init];Student *stu = [[Student alloc]init];NSLog(@"%zu",malloc_size((__bridge const void *)(stu)));NSLog(@"%zu",class_getInstanceSize([Student class]));}return 0;
}
2 思考 ?
以下还是占用 16个字节的内存空间
person 占用16个字节是因为内存对齐
student 占用16个字节是因为确确实实就是16个字节
2 OC 对象的本质(一个Student 占用的内存大小)相关推荐
- 1 OC 对象的本质(一个NSObject 对象占用的内存大小)
1 前言 目录 1 前言 2 一个NSObject占用多少内存 3 为什么呢 ? 4 如何在内存中看呢? OC 的面向对象都是基于C/C++ 的数据结构实现的 结构体 2 clang 命令转换成c++ ...
- android获取当前应用占用的内存大小,Android分析已安装应用占用内存
问题 Android开发时可以通过AndroidStudio提供的一些系列工具查看应用的内存占用,十分的方便. 但是如果是对一个成品的已安装App快速查看内存占用呢,下面简单讲两种方式. 方案一:to ...
- java程序占用实际内存大小
一.java程序占用实际内存大小 1.1.java命令启动参数-Xms -Xmx的问题 启动命令如下:java -server -Xms128m -Xmx128m -jar ****. ...
- Android中一张图片占用的内存大小
最近面试过程中发现对Android中一些知识有些模棱两可,之前总是看别人的总结,自己没去实践过,这两天对个别问题进行专门研究 探讨:如何计算Android中一张图片占据内存的大小 解释:此处说的占据内 ...
- 通过显示当前 python 程序占用的内存大小来比较生成器和迭代器(转载)
# 显示当前 python 程序占用的内存大小 import osimport psutil as psutildef show_memory_info(hint):# 获取当前进程的进程号pid = ...
- 如何使用Redis Data Reveal(rdr)查看redis中每个key占用的内存大小
如何使用Redis Data Reveal(rdr)查看redis中每个key占用的内存大小 一.为什么要查看redis中每个key的占用 二.怎么查看redis中每个key的占用 一.为什么要查看r ...
- android bitmap内存大小,Android——Bitmap占用的内存大小
一.作用 知其然 二.概念 1. 几个小概念 像素:组成画面的基本单位,像素没有物理尺寸.可以任意缩放去适配显示屏的像素点大小.不同设备上一个单位像素色块的大小是不一样的 (2)dp 设备独立像素,用 ...
- OC对象的本质及分类
Object-C的底层都是通过C/C++来实现的,所以OC中的对象也会转化成C/C++中的某一个数据结构, 我们在终端里通过指令 xcrun -sdk iphoneos clang -arch arm ...
- iOS底层原理总结 - OC对象的本质
苹果官方文档 The Objective-C language defers as many decisions as it can from compile time and link time t ...
最新文章
- unity开发小贴士之八 Audio使用心得
- 3.1.4 如何使深度学习模型达到人类水平以及超高人类水平
- windows下使用curl以及常用curl命令
- MySQL修改数据类型语句
- FPS武器设计:丹威森500型左轮手枪的制作流程
- Vimdiff---VIM的比较和合并工具
- HDU - 3533 Escape(预处理+A*)
- ios 常用操作-1
- python修改y轴刻度_Python | Y轴刻度限制
- python 源代码 macd双底 高 低_MACD指标DIFF双底与双顶:买入与卖出
- Ajax Control Toolkit--Slider:有朝一日倒过来
- python des加密文件_python DES3 加密解密
- 佳能MP145 /140故障代码大全
- JLU数据结构第六次上机实验解题报告
- msf-Msfvenonm生成后门木马
- 如何利用Python程序读取Excel创建折线图
- 百度地图、高德地图的数据从哪里得到的?[声明我只是此文章的搬运工]
- Linux查看服务器SN序列码
- 汉堡式折叠html,CSS/HTML - 带CSS的汉堡菜单
- 个人网站个人主页的建立