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