java - 有没有办法告诉 JVM 当前正在使用哪种 GC 算法

标签 java garbage-collection jvm-arguments

我正在使用 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/

相关文章:

java - 可选与 Java Stream 配合不好?

java - java中bmp转jpg

java - 如何将旧版本的垃圾收集器添加到新版本的 JRE

Java "Unrecognized VM Option"

java - 内部图形尚未初始化 : javafx

java - 如何获取kafka偏移量数据,在时间戳上指定

java - SoftReference<String> 内存不足时未进行垃圾回收

haskell - 为什么performGC无法释放所有内存?

gradle - 如何在Gradle Spring Boot项目的jvm参数中将newrelic jar添加为javaagent

java - eclipse vm 参数中使用的字符编码是什么?