常用的 GC组合与相关命令

本文深入解析JVM常用命令行参数,包括参数分类、查看方法、常见GC组合及默认回收器查询命令。涵盖从标准到非标准、不稳定参数的全面指南,帮助理解JVM内部工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JVM 常用的命令行参数

参考:
官网坐标点击可见

对于参数的分类

  • 标准: - 开头,所有的HotSpot都支持
  • 非标准:-X 开头,特定版本HotSpot支持特定命令
  • 不稳定:-XX 开头,下个版本可能取消

查看JVM参数的办法

java -XX:+PrintFlagsFinal -version
会显示很多很多的记录
格式为:
Type | Name | Operator | Value | Application

查找关键字可以加group 或者 findstr 命令
如:
java -XX:+PrintFlagsFinal -version |findstr New
java -XX:+PrintFlagsFinal -version |group New
findstr 是Windows 下的dos 命令
group 是linux 下的命令

常见的GC组合

-XX:+UseSerialGC

Serial New (DefNew) + Serial Old
适用于小型程序。默认情况下不会是这种选项,HotSpot会根据计算及配置和JDK版本自动选择收集器

-XX:+UseParNewGC

ParNew + SerialOld
这个组合已经很少用(在某些版本中已经废弃)

-XX:+UseConc(urrent)MarkSweepGC

ParNew + CMS + Serial Old
有的虚拟机环境需要带红色部分内容有的不需要

-XX:+UseParallelGC

Parallel Scavenge + Parallel Old (1.8默认) 【PS + SerialOld】
JDK 1.8版本默认适用的就这个

-XX:+UseParallelOldGC

Parallel Scavenge + Parallel Old
和-XX:+UseParallelGC 效果是一样的

-XX:+UseG1GC

G1 回收器

查看默认使用回收器的命令

运行命令:
java -XX:+PrintCommandLineFlags -version
后根据日志来分析
这个是我电脑执行完成后返回的内容

-XX:InitialHeapSize=267049216 起始堆大小,初始化时堆的大小
-XX:MaxHeapSize=4272787456 最大堆大小
-XX:+PrintCommandLineFlags 这个就是运行的命令
-XX:+UseCompressedClassPointers 启用类对象指针压缩
-XX:+UseCompressedOops 启用普通类中对象的指针压缩
-XX:-UseLargePagesIndividualAllocation 启用大文件单独分配
-XX:+UseParallelGC 使用 parallel GC 垃圾回收器

常用的命令设置

  1. java -XX:+PrintCommandLineFlags -version
    这个刚才说了用于显示命令行的参数

  2. java -Xmn10M -Xms40M -Xmx60M -XX:+PrintCommandLineFlags -XX:+PrintGC -version

-Xmn10M 年轻代大小 当只设置这一个参数时,初始大小和最大大小是一样的
-Xms40M 最小堆大小 或者 初始堆大小
-Xmx60M 最大堆大小 对于堆的设置,一般最小和最大建议设置一样大小。因为最小值和最大值的不断变动会调用cpu的不断计算,从而影响性能,所以我们可以直接就把最小值和最大值设置为一样的。
-XX:+PrintGC 打印GC信息,
-version 这里用version 这个命令来代替了,应该是执行的类名称,
除了PrintGC 参数外还可以使用以下参数来替换PrintGC

  1. PrintGCDetails 打印GC的详细信息
  2. PrintGCTimeStamps 打印GC详细时间
  3. PrintGCCauses 打印GC的触发原因
  1. java -XX:+UseConcMarkSweepGC -X:+PrintCommandLineFlags -version

这个命令就是使用CMS的垃圾回收器

  1. java -XX:+PrintFlagsInitial 默认参数值
  2. java -XX:+PrintFlagsFinal 最终参数值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值