jvm常用参数
Posted 皇甫哲
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jvm常用参数相关的知识,希望对你有一定的参考价值。
jvm常用的参数:
1.-Xms20M
设置堆容量的最小值为20M,必须以M为单位。
2.-Xmx20M
设置堆容量的最大值为20M,必须以M为单位。把-Xms和-Xmx的值设为一样可以避免堆自动扩展。大的项目-Xmx和-Xms一般要10G、20G甚至更高。
3.-verbose:gc
输出虚拟机中gc的详细情况。
4.-Xss128k
设置虚拟机栈的大小是128k
5.-Xoss128k
设置本地方法栈的大小为128k。Hotspot虚拟机不区分虚拟机栈和本地方法栈,这个对于Hotspot来说是无效的。
6.-XX:PermSize=10M
表示jvm初始分配的永久带的容量,必须以M为单位。
7.-XX:MaxPermSize=10M
jvm允许分配的永久带的最大容量,必须以M为单位。大部分情况下默认为64M。
8.Xnoclassgc
表示关闭jvm对类的垃圾回收。
9.-XX:+TraceClassLoading
表示查看类的加载信息
10.-XX:+TraceClassUnLoading
表示查看类的卸载信息
11.-XX:NewRatio=4
表示年轻代:老年代的比是1:4
12.-XX:SurvivorRatio=8
表示 Eden区::一个Survivor区 = 8,默认是8
13.-Xmn20M
设置年轻代的大小是20M
14.-XX:+HeapDumpOnOutOfMemoryError
表示可以让虚拟机出现内存溢出时Dump出当前的堆内存存储快照。
15.-XX:+UseG1GC
使用G1垃圾收集器
16.-XX:+PrintGCDetails
在控制台打印出gc具体细节
17.-XX:+PrintGC
在控制台打印出gc信息
18.-XX:PretenureSizeThreshold=3145728
对象大于3145728(3M)直接进入老年代,这里只能以字节作为单位。
19.-XX:MaxTenuringThreshold=1
表示对象年龄大于1,自动进入老年代
20.-XX:CompileThreshold=1000
表示一个方法被调用1000次后被认为是热点代码,并触发即使编译。
21.-XX:+PrintHeapAtGC
表示可以看到每次gc前后堆内存布局
22.-XX:+PrintTLAB
表示可以看到TLAB的使用情况
23.-XX:+UseSpining
开启自旋锁
24.-XX:PreBlockSpin
更改自旋锁的自旋次数,使用这个参数必须先开启自旋锁。
以上是关于jvm常用参数的主要内容,如果未能解决你的问题,请参考以下文章
JVM面试问题系列:JVM 配置常用参数和常用 GC 调优策略