我有一个Java项目,它在树状层次结构中初始化数千个对象。
最初,我考虑到了性能编程,因此不介意在类字段(变量)中存储大量可计算属性。
但是,最近,我开始尝试估算项目的内存占用量,发现它非常大。
我正在尝试确定哪个班级消耗的内存最多 我想我可以把它缩小到哪个字段消耗最多(可能是字符串)
我遇到了Java的instrumentation
包和getObjectSize
我尝试了解他们的文档,但我不确定instrumentation
是否适合我的任务
我还注意到getObjectSize
没有递归地查找大小。
我正在考虑创建一个扩展Object
并包含instance -> instanceSize
静态映射的类,然后让我的所有类扩展此类并更新其构造函数
我的方法是否正确?
实现这一目标的最“Java”方式是什么?
答案 0 :(得分:1)