本文共 1539 字,大约阅读时间需要 5 分钟。
引言:JVM中的参数,根据是否常修改,可分为标准类型和非标准类型。标准类型的代表有 -server,-client和-version这种无论在那个版本JVM中都是自带不可改的部分。 —Xint,-Xcomp和-Xmixed这类X开头的也是不可修改。其它部分则可统一归类到非标准类型中,也是本文要详解的主要内容。
-Xms -Xmx 堆的容量-XX:NewSize -XX:MaxNewSize 新生代的大小-XX:NewRatio 设置Yong 和 Old的比例 -XX:SurvivorRatio 设置两个Survivor区和Eden的比-XX:MetaspaceSize -XX:MaxMetaspaceSize metaspace 大小 (下面的参数都是小弟,主要调整老大即可,容量大了,下面的也会变大)-XX:+UseCompressedClassPointers 使用压缩短指针-XX:CompressedClassSpaceSize 压缩类空间的大小 默认1G 可以设置-XX:InitialCodeCacheSize codeCache 最小值-XX:ReservedCodeCacheSize codeCache 最大值-XX:StringTableSize=99991 调整String Pool的大小
jps -l 输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名jinfo -flag MaxHeapSize <进程pid> 查看某运行进程的最大堆内存jinfo -flags <进程pid> 显示被手动赋过值的参数jinfo -flag UseG1GC 30101 是否使用G1收集器jinfo -flag useConcMarkSweepGC 30101 是否使用了CMS收集器 进程pid> 进程pid>
以下是jps实际运行结果:
jinfo实际运行结果如下:打印:
-XX:+PrintFlagslnitial(可设置参数的初始值) 显示的参数如果是:=则表示是修改过的,=则表示是默认值-XX:PrintFlagsFinal-XX:+PrintCommandLineFlags打印命令行参数
诊断:
-XX:UnlockExperimentalVMOptions解锁实验参数(先决条件)-XX:+UnlockDiagnosticVMOptions解锁诊断参数
查看全部参数命令:java -XX:+PrintFlagsFinal -version
jstat的一系列命令可以查看JVM的类装载和垃圾回收相关信息
jstat -class <进程pid> 监视类装载、卸载数量、总空间以及耗费的时间jstat -gc <进程pid> [1000] [10] 垃圾回收堆的行为统计(此处是每秒打印10次) 进程pid> 进程pid>
以下是jstat实际运行结果:
Loaded : 加载class的数量 Bytes : class字节大小 Unloaded : 未加载class的数量 Bytes : 未加载class的字节大小 Time : 加载时间S0C、S1C、S0U、S1U:S0和S1的总量与使用量(S0 和S1 不会同时启用,未启用的会是0)
EC、EU: eden区总量与使用量 OC、OU:Old区总量与使用量 MC、MU:Metaspace区总量与使用量 CCSC、CCSU:压缩类空间总量与使用量 YGC、YGCT:YoungGC的次数与时间 FGC、FGCT:FullGC的次数与时间 GCT:总的GC时间转载地址:http://jbrsi.baihongyu.com/