编写分析我还将实现堆分析的典型任务。具体我想跟踪一下,哪个线程分配了多少数据?使用 JVMTI,我认为挂钩事件VM Object Allocation和Object Free就足够了。可悲的是,我读到第一个事件没有被触发,因为调用new
.
我的最后一个想法是检查事件MethodExit的名称是否为<init>
,从而将此调用声明为对象分配。但是,在此事件中,我无法获取对象,因此无法调用GetObjectSize
.
简单地遍历堆,不包含关于哪个对象由哪个线程分配的信息。有谁知道如何实现这个?