我正在使用 Java 5,我们的自定义服务器应用程序需要 GC 调整,因为有时我们会在高峰时段遇到 15-20 秒的暂停。我们在带有 JVM 参数的服务器类机器上运行 Java 5,例如-server -d64
有没有办法判断 JVM 当前使用的是哪种 GC 算法?
http://docs.oracle.com/javase/1.5.0/docs/guide/vm/gc-ergonomics.html
在运行服务器 VM 的服务器级机器上,垃圾收集器 (GC) 已从以前的串行收集器 ( -XX:+UseSerialGC
) 更改为并行收集器 ( -XX:+UseParallelGC
)。-XX:+UseSerialGC
您可以使用java 命令的命令行选项覆盖此默认值。
1)我想知道这真的发生了吗?
我的下一个问题是我在命令行参数中添加了以下内容
-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime -Xloggc:logs/gc.log
2) 除了记录 GC 日志之外,它们是否会对正在运行的 JVM 产生任何性能或行为影响?