jvm系列基础1:系统上线前预估系统的内存

jvm基础

  • Garbage Collector
  • GC turing

JVM GC的问题

  1. ThreadLocal有内存泄漏问题嘛?
  2. CMS的并发处理和并发可中断预处理
  3. 多大的对象会被扔到老年代

content

  1. what is garbage?
    找到垃圾(没有引用指向的对象)并回收
  2. how to find a grabage?
  • reference count(引用计数)
    • 无法解决:A,B,C分别指向
  • Root Searching
    • which instances are roots?
      • jvm stack
      • native method stack
      • run-time constant pool
      • static references in method area
      • clazz?
  1. GC Algorithms
  • Mark-Sweep(标记清除)
    • 问题:产生碎片
  • copying:把内存一分为二,只使用一半
    • 缺点:内存浪费
  • Mark-Compact:标记之后压缩,有利于新对象的存放
    • 缺点:效率比copy算法低

Garbage Collectors

在这里插入图片描述

  1. 垃圾回收器路线,是随着内存越来越大的过程演进
  • 从分代算法演化到不分代算法
    • 年轻代(new):使用copying算法
      • eden(伊甸):存活得特别少
      • survivor1(幸存区)
      • survivor2(第二个幸存区)
    • 老年代(old): 使用mark compact算法
      • tenured(终身)

YGC与FGC

  • YGC
    • Young GC Minor GC
    • Eden区不足
  • FGC
    • Full GC Major GC
    • Old空间不足
    • System.gc()

总结

在这里插入图片描述

年代划分

在这里插入图片描述

  1. Serial
  • a stop-the-world(stw),copying collecter which uses a single GC
  1. ParNew
  2. Parallel Scavenge
  3. Serial Old
  4. CMS
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值