GC FullGC

内存区域划分:

堆 heap —主要数据、线程共享(线程安全问题)

方法区 method Area—线程共享—类加载器的类信息、常量、静态变量(编译后class文件信息)

栈 stack—线程私有—生命周期跟随线程、局部变量表、操作栈、动态链接、方法出口

程序计数器—线程私有—记录线程执行情况

GC 的对象是 heap区域

Jvm对不同生命周期的对象进行分类,对堆内存区域进行逻辑划分。

按照存活时间分为:(分代收集算法)

年轻代  Eden Servivor + 闲置Servivor---- 年轻代的GC->Minor GC

老年代 (永久代-元数据空间)——经历多次Minor GC仍然存活的放入老年代——老年代的GC->Major GC

分配规则:

1、优先Eden

2、大对象、长期存活对象 直接进入老年代

GC触发会耗时:

要控制好内存和配置,减少触发

Gc触发条件:

1、system.gc()

2、老年代空间不足—新生代对象转入、创建大对象

GC收集器--实现gc的各类算法——CMS最优秀

分析GC日志,

GC [PSYoungGen: 251986K->1403K(917504K)]

FullGC [PSYoungGen: 1403K->0K(917504K)]

JVM调优大部分堆GC的调优

GC的原因大部分是代码问题

减少对象创建数量、减少全局变量+大对象

调整新生代、老年代大小

选择合适的gc收集器

调整—监控--对比—分析—调整

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值