如何查看Java正在使用哪个垃圾回收器
2022-09-03 08:34:37
Java 虚拟机支持多种垃圾回收策略。
本文将对此进行解释。
现在我想知道我的应用程序正在使用哪种(自动选择的)策略,有没有办法让JVM(版本1.6)打印此信息?
编辑:JVM 检测它是否处于客户端或服务器模式。所以真正的问题是我如何看到哪个已被检测到?
Java 虚拟机支持多种垃圾回收策略。
本文将对此进行解释。
现在我想知道我的应用程序正在使用哪种(自动选择的)策略,有没有办法让JVM(版本1.6)打印此信息?
编辑:JVM 检测它是否处于客户端或服务器模式。所以真正的问题是我如何看到哪个已被检测到?
jmap -heap
打印堆摘要。打印了使用的GC算法,堆配置和生成明智的堆使用情况。
http://java.sun.com/javase/6/docs/technotes/tools/share/jmap.html
适用于 J2SE 6 http://java.sun.com/j2se/1.5.0/docs/guide/vm/gc-ergonomics.html 还指出缺省值为并行收集器。
我们在 JVM 1.5 上测试了一次,只需设置
-server -Xms3g -Xmx3g -XX:PermSize=128m -XX:LargePageSizeInBytes=4m -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps
并显示输出
41359.597: [GC [PSYoungGen: 90499K->32K(377344K)] 268466K->181862K(2474496K), 0.0183138 secs] 41359.615: [Full GC [PSYoungGen: 32K->0K(377344K)] [PSOldGen: 181830K->129760K(2097152K)] 181862K->129760K(2474496K) [PSPermGen: 115335K->115335K(131072K)], 4.4590942 secs]
其中 PS 代表平行拾荒