0

我有一个 Java 项目,它以树状层次结构初始化数千个对象。

最初,我在编程时考虑到了性能,因此不介意在类字段(变量)中存储大量可计算属性。
然而,最近,我开始尝试估计我的项目的内存占用,发现它非常大的。

我正在尝试确定哪个类消耗的内存最多,
我想我可以将其缩小到哪个字段消耗最多(可能是字符串)

我遇到过Java的instrumentation包和getObjectSize

我尝试了解他们的文档,但我不确定是否instrumentation适合我的任务。
我还注意到getObjectSize不会递归地找到大小。

我正在考虑创建一个扩展Object并包含的静态映射的instance -> instanceSize类,然后让我的所有类扩展这个类并更新它们的构造函数

我的方法正确吗?
完成此任务的最“Java”方式是什么?

4

1 回答 1

1

嗯,放下编码工具,拿起一个内存分析器。那里有很多免费的。

于 2013-08-20T01:06:23.227 回答