JVM及GC简要了解

GC 机制

  • 题记:没有基础,用来了解,请大家指点~
    Q:啥是GC?
    A: 垃圾回收器(这是翻译),我觉得是:在程序运行过程中,进行堆内存管理的方法。

JVM 组成

Q: 啥是JVM
A:java 虚拟机,一种计算设备的规范。所谓虚拟:并不是真的计算设备,而是在真实的计算设备上模拟各种计算功能。这种特性完成了java 一次编译到处运行的特点
其组成部分。

  • class loader (加载类)
  • executor engine(执行引擎)
  • runtime data area(运行时数据区)
  • Native interface(本地接口)
运行时数据区

五类数据:

  • java栈
  • 本地方法栈
  • 方法区
  • 程序计数器
GC 作用区:方法区&堆(java 栈也会发生GC吗 ?)
迈出第一步:找到垃圾
  • 80%对象为临时对象。垃圾就是不再使用的(使用的次数很少。)
如何清除垃圾

符合常识的垃圾清理

  • copying(找一个屋子把贵重物品想放起来,对原始屋子大扫除后,再搬回来。)
  • mark-sweep(给贵重的东西做个布套,剩余的大扫除,完事把布套收回来)
  • mark-compact(不仅 要收回布套,要让贵重的物品扎堆去唠家常)
  • mark-sweep-compact
为什么要分代
  • 减少工作量,保证吞吐量
关于某大神对于GC 的一些建议
  • set null cann’t help GC
  • don’t set gc by code
关于G1
  • 一般在线服务对于暂停时间都是相当敏感的。
    通过GC 我们可以标记回收堆内存中的垃圾。但是我们没办法控制的回收垃圾的时间。
  • G1 为我们提供了一个方案,正如名字 Garbage First ,第一时间回收内存。
    为了干这件事,G1在新生代,旧生代的内存分配上不再使用GC 连续内存的方式,而是使用非连续内存。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值