JVM-堆参数调整

 

 

1、-Xms

设置初始分配大小,默认为物理内存的"1/64"

2、-Xmx

最大分配内存,默认为物理内存的"1/4"

3、-XX:+PrintGCDetails

输出详细的GC处理日志

查看自己电脑默认配置大小

 生成环境最大值和最小值必须设置一样。不然系统内存忽高忽低,系统产生停顿

4、idea设置堆内存的最大值和最小值一样

 

-Xms1024m -Xmx1024m -XX:+PrintGCDetails

5、查看JVM内存分配结构

 

 (PSYoungGen+ParOldGen)/1024=堆内存

JDK1.8之后:Metaspace:元空间

JDK1.7之前:PSPermGen:永久代

6、代码报错OOM

设置JVM大小

报错:Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 

 

 7、GC日志分析

[GC (Allocation Failure)  :分配失败产生GC

[PSYoungGen: 3994K->486K(4608K)] 3994K->917K(15872K), 0.0006858 secs]

[Times: user=0.00 sys=0.00, real=0.00 secs] 

3994K:GC之前的大小

486K:GC之后的大小

4608K:新生代总共大小

3994K:GC之前老年代的大小

917K:GC之后老年代的大小

15872K:堆的总大小

0.0006858 secs:GC耗时时间

user=0.00:用时

sys=0.00:系统用时

real=0.00:时间耗时

[Full GC (Ergonomics)

[PSYoungGen: 384K->0K(4608K)]

[ParOldGen: 9439K->2145K(11264K)] 9823K->2145K(15872K),

[Metaspace: 3114K->3114K(1056768K)], 0.0020655 secs]

[Times: user=0.00 sys=0.00, real=0.00 secs] 

规律:

名称:GC前内存占用->GC后内存占用(该区内存总大小)

GC在新生区,FULL GC在堆(新生区+老年区)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

追逐路上的小人物

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

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

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

打赏作者

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

抵扣说明:

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

余额充值