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

Java垃圾调度器是否以某种形式描述了它的细节?

  •  0
  • Rajat  · 技术社区  · 15 年前

    在jvm中作为守护进程运行到垃圾收集对象的调度程序,可以用jmx来监控它。我们有什么方法可以告诉这些是它现在可能垃圾收集的对象吗?这样我们就可以知道,如果我们正在创建我们类的特定对象,并且实例在内存中被保存,当它们可以被垃圾收集时,以及它们占用了多少内存。 还有一种方法可以说明我的类的一个实例平均占用了多少内存。

    我知道这个问题可能很愚蠢,但即使我们不能强制垃圾收集,我们能在运行时找出哪些对象没有被其他对象连接(换句话说,根本没有被使用)。我们能在运行时找到弱引用吗,有没有一种方法来描述它。

    2 回复  |  直到 15 年前
        1
  •  4
  •   David Rabinowitz    15 年前

    您要问的是所谓的垃圾收集调优,它在Web中有许多资源,例如 this .

    具体地说,有一些应用程序可以用来监视Java应用程序内存的行为,例如VisualVM。还可以通过在commnad行中添加以下标志,使VM将所有垃圾收集打印到文件中:

     -verbose:gc
     -XX:+PrintGCTimeStamps
     -XX:+PrintGCDetails
    

    然后使用分析应用程序,如 gcviewer OT pmat 分析它们。

        2
  •  4
  •   Nick Holt    15 年前

    使用分析器进行此操作-查看 Visual VM .