代码之家  ›  专栏  ›  技术社区  ›  G__

如何在没有引用的情况下访问Java堆对象?

  •  3
  • G__  · 技术社区  · 15 年前

    目标是序列化和存储所有对象,以实现穷人执行状态的持久性。我意识到,当涉及到不同类型的瞬态时,兔子洞会变得很深,但仅仅是持久化对象&加载的类定义对我很有用。

    有没有办法访问堆来实现这一点?我是否忽略了一种更直接的方法?

    3 回复  |  直到 15 年前
        1
  •  4
  •   Michael Lloyd Lee mlk    15 年前

    我会调查这件事的 instrument

        2
  •  1
  •   Vineet Reynolds    15 年前

    如果希望以编程方式进行堆转储,那么在java.*或javax.*命名空间中找不到合适的API。但是,Sun运行时附带 HotSpotDiagnosticMXBean 这将使您能够通过将堆的内容写入磁盘中的指定文件来进行堆转储。

        3
  •  0
  •   Robert Munteanu    15 年前

    我建议你坐飞机 heap dump 然后使用 the Eclipse Memory Analyser .

    可用视图允许您深入到实例级别,查看对象属性。您甚至可以使用 OQL

    screenshot http://img181.imageshack.us/img181/4013/dominatortreegrouped.png