Objective C中特定对象的内存使用情况

时间:2011-08-24 09:15:16

标签: objective-c ios macos memory memory-management

我有一个适用于iOS的缓存系统,我想添加一个函数来记录对象列表的内存使用情况 那么如何计算自定义对象的内存使用量呢?

2 个答案:

答案 0 :(得分:2)

你在分配工作。使用class_getInstanceSize()将获得一个对象的实例大小,但不会获取对象引用的对象的实例大小。每个对象引用只计为4字节指针,而不是指对象的实际实例大小。

你可能很聪明并且使用class_copyIvarList(),遍历ivars并且询问任何ivar,它也是它的实例大小的对象,然后递归地对你的超类做同样的事情,直到你点击根类。

或者您可以使用内存分配模板启动Instruments,并实时测量实际内存使用情况。

答案 1 :(得分:1)

在Obj-C运行时中查找class_getInstanceSize()函数。