我有一个适用于iOS的缓存系统,我想添加一个函数来记录对象列表的内存使用情况 那么如何计算自定义对象的内存使用量呢?
答案 0 :(得分:2)
你在分配工作。使用class_getInstanceSize()
将获得一个对象的实例大小,但不会获取对象引用的对象的实例大小。每个对象引用只计为4字节指针,而不是指对象的实际实例大小。
你可能很聪明并且使用class_copyIvarList()
,遍历ivars并且询问任何ivar,它也是它的实例大小的对象,然后递归地对你的超类做同样的事情,直到你点击根类。
或者您可以使用内存分配模板启动Instruments,并实时测量实际内存使用情况。
答案 1 :(得分:1)
在Obj-C运行时中查找class_getInstanceSize()
函数。