JVM 调优 一些原则

  1. GC优化的两个目的:

    1) 将进入老年代的对象数量降到最低
    
        基本都是分代GC,就是对象在Eden区被创建,随后被转移到Survivor区,在此之后剩余的对象会被转入
    老年代。也有一些对象由于占用内存过大,在Eden区被创建后会直接被传入老年代。老年代GC相对来说会
    比新生代GC更耗时,因此,减少进入老年代的对象数量可以显著降低Full GC的频率。
    你可能会以为减少进入老年代的对象数量意味着把它们留在新生代,事实正好相反,新生代内存的大小是可以调节的。
    
    2) 减少Full GC的执行时间
       
       FullGC的执行时间比MinorGC要长很多,因此如果在FullGC上花费过久(超过1s),将可能出现超时错误。
    
    如果通过减小老年代内存来减少Full GC时间,可能会引起OutOfMemoryError或者导致Full GC的频率升高
    如果通过增加老年代内存来降低Full GC的频率,Full GC的时间可能因此增加
    所以要不停的调节老年代大小,使得两者兼顾 (减少时间和减少频率)

     

  2. 永久代内存大小   一般不需要去调节,注意的时如果有很多类加载器的话,会预先分配给每个加载器独立的空间,可能导致永久代还未满,但是出现了outofmemory

  3. 大内存空间
        减少了GC的次数
        提高了GC的运行时间
    小内存空间
        增多了GC的次数
        降低了GC的运行时间

     

  4. 设置新生代大小

修改参数:NewRatio

NewRatio:2 ----》 Minor GC   40ms

NewRatio:3 ----》 Minor GC   34ms

NewRatio:4  ----》 Minor GC   30ms

当修改为 4时,则GC时长最短,并且不会再出现FullGc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值