我正在开发一个涉及Java内存分析工具的项目。该工具适用于类文件,并为给定类的内存消耗提供上限。目前,该工具并不完美,例如在以下代码中:
class Example {
public Object o;
public Example() {
o = new Object();
}
}
由于构造函数中的实例化,Object o所需的空间被计算为double。目前,用户需要从构造函数中手动删除类范围的对象实例,以便获得所需内存的更准确的上限。
由于我们无法对分析工具进行更改,因此我们希望自动化从构造函数中剥离对象实例化的过程。但是,由于这会在工具发挥其魔力之前发生,因此它发生在类文件级别上。
我们怎样才能做到这一点?我一直在关注ASM。但是,我还没有找到实现我想要的方法。感谢所有帮助。