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