Java内存消耗的分类分析

时间:2013-08-20 00:16:03

标签: java profiling memory-profiling

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

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

我正在尝试确定哪个班级消耗的内存最多 我想我可以把它缩小到哪个字段消耗最多(可能是字符串)

我遇到了Java的instrumentation包和getObjectSize

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

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

我的方法是否正确?
实现这一目标的最“Java”方式是什么?

1 个答案:

答案 0 :(得分:1)

嗯,放下编码工具,拿起内存探查器。那里有很多免费的。