我能够在JVM级别使用各种工具监视java应用程序。我可以转储堆对象并找出对象的数量和它们的总大小。
此时,我想知道每个对象的堆位置,我的意思是,你可能知道有三个堆部分(eden,old,perm空间),在转储时哪个对象位于哪个堆空间。
答案 0 :(得分:2)
单个对象的位置不是您可以追踪的。只是倾倒堆可能导致物体移动。无论你想做什么,我建议你做另一种方式。
顺便说一句:如果你对“实时”对象进行转储,则会触发一个完整的GC,它可以将所有对象移动到旧的对象中,因此在这种情况下,您可以知道所有对象的位置。 ;)