我有一个适用于iOS的缓存系统,我想添加一个函数来记录对象列表的内存使用情况。
那么如何计算自定义对象的内存使用情况?ObjectiveC中指定对象的内存使用情况
2
A
回答
2
你是在分配工作。使用class_getInstanceSize()
将为您获取一个对象的实例大小,但不会获取对象所引用的对象的实例大小。每个对象引用只会计为一个4字节的指针,而不是被引用对象的实际实例大小。
你可能会很聪明,并且使用class_copyIvarList()
,遍历ivars并且询问任何一个对象也是它的实例大小的ivar,然后递归地为你的超类做同样的事情,直到你打到根类。
或者您可以使用内存分配模板启动仪器,并实时测量实际的内存使用情况。
+0
似乎是一项艰巨的工作。还需要检查对象是否已经计算过 – xhan
1
在Obj-C运行时查找class_getInstanceSize()
函数。
相关问题
- 1. 对象的内存使用情况
- 2. 确定.NET中对象图的内存使用情况
- 3. Grails - 启动内存/内存使用情况/域对象
- 4. C++指针内存使用情况
- 5. 计算Java中任何对象的总内存使用情况
- 6. 如何测量python中对象的内存使用情况?
- 7. 如何计算对象的内存使用情况?
- 8. C#:一个对象的内存使用情况
- 9. 如何测量JavaScript对象的内存使用情况
- 10. JavaScript对象的内存使用情况和复杂性顺序
- 11. 记录一个对象的内存使用情况
- 12. Pympler获取对象的内存使用情况
- 13. Tcl_Format内存使用情况
- 14. Silverlight内存使用情况
- 15. BlackBerry内存使用情况
- 16. php内存使用情况
- 17. iphone内存使用情况
- 18. IronPython内存使用情况
- 19. CCLabelBMFont内存使用情况
- 20. Android内存使用情况
- 21. GPUImage内存使用情况
- 22. Java内存使用情况
- 23. Linux内存使用情况
- 24. Listview内存使用情况
- 25. V8内存使用情况
- 26. 内存使用情况
- 27. java内存使用情况
- 28. IIS内存使用情况
- 29. Silverlight内存使用情况
- 30. cmd内存使用情况
我认为你可以找到答案[这里](http://stackoverflow.com/questions/5895971/using-sizeof-equivalent-in-objective-c) – Xav
@Xav,你为什么不张贴为回答? –
谢谢@Xav,关于objc运行时的文章真的很有趣。 – xhan