当前位置: 首页 > article >正文

JVM:垃圾回收器 垃圾收集器分类 评估GC的性能指标

GC:垃圾回收或者垃圾收集器

一、垃圾收集器分类:

1.1按用于垃圾回收的线程数分类

分为串行垃圾回收器和并行垃圾回收器

 指的是在同一时间段内只允许有一个CPU用于执行垃圾回收操作,此时工作线程被暂停,直至垃圾收集工作结束
 在诸如单CPU处理器或者较小的应用内存等硬件平台不是特别优越的场合,串行回收器的性能表现可以超过并行回收器和并发回收器,所以,串行回收默认被应用在客户端的Client模式下的JVM中
 在并发能力比较强的CPU上,并行回收器产生的停顿时间要断于串行回收器
 串行回收仍然与并行回收一样,采用独占式,使用STW机制

1.2按照工作模式分类

分为并发式垃圾回收器和独占式垃圾回收器
 并发式垃圾回收器与应用程序线程交替工作,以尽可能减少应用程序的停顿时间
 独占式垃圾回收器一旦运行,就停止应用程序中的所有用户线程,知道垃圾回收过程完全结束

1.3按照碎片处理方式分:

压缩式垃圾回收器和非压缩式垃圾回收器
 压缩式垃圾回收器会在垃圾回收完成后,对存活对象进行压缩整理,消除回收后的碎片
 非压缩式垃圾回收器不进行这步操作

1.4按工作的内存区间分

分为年轻代垃圾回收器和老年代垃圾回收器

二、评估GC的性能指标:

  1. 吞吐量:运行用户代码的时间占总运行时间的比例
  2. 总运行时间:程序的运行时间+内存回收的时间
  3. 垃圾收集开销:吞吐量的补数,内存回收的时间占总运行时间的比例
  4. 暂停时间:执行垃圾收集时,程序的工作线程被暂停的时间
  5. 收集频率:相对于应用程序的执行,收集操作发生的频率
  6. 内存占用:Java堆所占的内存大小

主要抓以上两点:

吞吐量,暂停时间
吞吐量:比如:虚拟机总共运行了100分钟,其中垃圾收集花掉了1分钟,那吞吐量就是99%
高吞吐量和低暂停时间是一对相互竞争的目标,如果要选择以吞吐量优先,那么必然需要降低内存回收的执行频率,但是这样会导致GC需要更长的暂停时间来执行内存回收
现在标准:在最大吞吐量优先的情况下,降低停顿时间

http://www.kler.cn/news/290696.html

相关文章:

  • 双向链表
  • python办公自动化:使用`Python-PPTX`自动化与批量处理
  • 从零开始:理解并实践Prompt Flow
  • inotify + rsync 实时同步 ,定时备份
  • Android12上新增jar遇到的问题总结
  • fedora siliverblue adb
  • 为虚拟机配置固定的IP地址(CentOS9)
  • c++162 类的封装和访问
  • 转载【FIR 线性相位系统 最小相位系统 滤波器延迟】
  • 使用Dbeaver 操作 mongodb
  • 「小明赠书活动」第五期“网安三剑客”套系图书《内网渗透技术》《渗透测试技术》《Web应用安全》
  • Luminar Neo for Mac智能图像处理软件【操作简单,轻松上手】
  • LeetCode 热题100-11 滑动窗口的最大值
  • 前端防抖和节流函数的实现原理
  • MFC的控件无法触发事件函数(ON_COMMAND_RANGE的映射范围冲突)
  • 百度翻译API翻译Qt LinguistTools的ts文件
  • 百度飞浆目标检测PPYOLOE模型在PC端、Jetson上的部署(python)
  • React 创建和嵌套组件
  • 策略规划:在MySQL中实现数据恢复的全面指南
  • [Python图论]在用图nx.shortest_path求解最短路径时,节点之间有多条边edge,会如何处理?
  • 【MySQL】索引使用规则——(覆盖索引,单列索引,联合索引,前缀索引,SQL提示,数据分布影响,查询失效情况)
  • Proteus 仿真设计:开启电子工程创新之门
  • Unity3D中控制3D场景中游戏对象显示层级的详解
  • 构建数据恢复的硬件基础:MySQL中的硬件要求详解
  • draw.io图片保存路径如何设置
  • linux(ubuntu)安装QT-ros插件
  • Ferrari求解四次方程
  • VTK随笔十三:QT与VTK的交互
  • jupyter 笔记本中如何判定bash块是否执行完毕
  • CentOS7 yum 报错解决方案