我有一個適用於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