【Java】JVM(四)、虚拟机参数配置

时间:2021-12-29 10:33:05
1. -Xms20M 
    JVM启动时候的内存大小为20M
 
2. -Xmx20M
    JVM内存最大值是20M 将其与Xms大小一致可以避免JVM内存自动扩展
 
3. -Xss128K
    表示可以设置虚拟机栈大小为128K
 
4. -Xoss128K
    表示设置本地方法栈的大小为128K(HotSpot不区分虚拟机栈和方法栈)  
 
5. -Xmn20M  
    表示年轻代的大小为20M
 
6. -verbose:gc
    输出虚拟机中GC的详细使用情况
 
7. -XX:PermSize=10M
    初始分配的永久代的容量
 
8. -XX:MaxPermSize=10M
    JVM允许永久代的最大容量
 
9. -Xnoclassgc
    关闭JVM的垃圾回收功能
 
10. -XX:+TraceClassLoading
    显示类加载信息
 
11. -XX:+TraceClassUnLoading
    显示类卸载信息
 
12. -XX:NewRatio=4
    表示设置年轻代:老年代的大小比值为1:4,这意味着年轻代占整个堆的1/5
 
13. -XX:SurvivorRatio=8
    表示设置2个Survivor区:1个Eden区的大小比值为2:8,这意味着Survivor区占整个年轻代的1/5,这个参数默认为8
 
14. -XX:+HeapDumpOnOutOfMemoryError
    表示可以让虚拟机在出现内存溢出异常时Dump出当前的堆内存转储快照
 
15、 -XX:+UseG1GC
    表示让JVM使用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
    表示可以看到前后堆内存布局
 
22. -XX:PrintTLAB
    查看TLAB的使用情况
 
23. -XX:UseSpining
    开启自旋锁
 
24. -XX:preBlockSpin
    更改自旋锁的自旋次数