JVM参数查看命令

本文介绍了如何使用特定的JVM参数来查看当前JVM的配置情况。一种方式是使用`-XX:+PrintCommandLineFlags`来查看与初始默认值不同的值与参数;另一种方式是使用`-XX:+PrintFlagsFinal`来列出所有JVM可以设置的参数及其值。

JVM参数查看命令

  • 查看JVM启动后与初始默认值不同的值与参数(这个参数至少在Sun JDK 5上已经开始支持,Oracle/Sun JDK 6以及Oracle JDK 7上也可以使用。Sun JDK 1.4.2还不支持这个参数。 )
$java -XX:+PrintCommandLineFlags
-XX:InitialHeapSize=125817280 -XX:MaxHeapSize=2013076480 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC
  • 列出JVM所有可以设置的参数及它们的值(这个参数则可以显示所有可设置的参数及它们的值。不过这个参数本身只从JDK 6 update 21开始才可以用,之前的Oracle/Sun JDK则用不了)
$java -XX:+PrintFlagsFinal
JVM查看GC日志及相关运行状态信息时,可以使用多种命令行工具和JVM启动参数来实现。以下是一些常用的方法和参数: ### 1. **启用GC日志输出** 为了查看GC日志,可以通过JVM启动参数启用日志记录功能。以下是一些常用的参数: - **JDK 8 及更早版本**: ```bash -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/path/to/gc.log ``` 这些参数会启用详细的GC日志输出,并将日志保存到指定的文件中。 - **JDK 9 及更高版本**: ```bash -Xlog:gc*:file=/path/to/gc.log:time ``` 这个参数是JDK 9引入的新GC日志系统,支持更灵活的日志格式和输出方式。 ### 2. **使用 `jstat` 查看实时GC状态** `jstat` 是JDK自带的一个命令行工具,用于监控JVM的垃圾收集情况。以下是一些常用命令: - **查看GC统计信息**: ```bash jstat -gc <pid> [interval] [count] ``` 例如: ```bash jstat -gc 12345 1000 5 ``` 这条命令会每隔1秒输出一次进程ID为12345的JVM的GC统计信息,共输出5次。 - **查看GC详细信息**: ```bash jstat -gccapacity <pid> ``` 这条命令会显示JVM各代(新生代、老年代)的内存容量和使用情况。 ### 3. **使用 `jcmd` 查看GC日志** `jcmd` 是JDK 7引入的一个多功能工具,可以用于向JVM发送诊断命令。例如,可以使用以下命令查看GC日志: - **启用GC日志**: ```bash jcmd <pid> VM.options -XX:+PrintGCDetails -XX:+PrintGCDateStamps ``` 这条命令会动态修改JVM的选项,启用GC日志输出。 - **查看JVM参数**: ```bash jcmd <pid> VM.flags ``` 这条命令会显示JVM当前的启动参数。 ### 4. **使用 `jinfo` 查看JVM参数** `jinfo` 可以用于查看和修改JVM的配置参数。例如,可以使用以下命令查看JVM的启动参数: - **查看JVM参数**: ```bash jinfo <pid> ``` 这条命令会显示JVM的系统属性和启动参数。 ### 5. **分析GC日志文件** 如果已经生成了GC日志文件,可以使用以下工具进行分析: - **GCEasy**:一个在线工具,可以上传GC日志文件并生成详细的分析报告。 - **GCViewer**:一个开源工具,可以本地运行并分析GC日志。 - **JDK Mission Control (JMC)**:结合JFR(Java Flight Recorder)可以进行更深入的性能分析。 ### 示例代码:生成GC日志 以下是一个简单的Java程序示例,用于生成GC日志: ```java public class GCTest { public static void main(String[] args) { while (true) { byte[] data = new byte[1024 * 1024]; // 分配1MB内存 } } } ``` 运行该程序时,可以使用以下JVM参数启用GC日志: ```bash java -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:gc.log GCTest ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wp500

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值