JVM之初识垃圾收集器

embedded/2024/10/16 4:27:42/
  • JDK 8:Parallel Scavenge(新生代)+ Parallel Old(老年代)
  • JDK8以后:G1收集器

什么是串行回收和并行回收?

Serial收集器:串行收集器

新生代使用标记复制算法,老年代使用标记整理算法。工作时必须停止其它工作线程(stop the world)

ParNew收集器:Serial收集器的多线程版本

Parallel Scavenge 收集器

-XX:+UseParallelGC使用 Parallel 收集器+ 老年代串行-XX:+UseParallelOldGC使用 Parallel 收集器+ 老年代并行

Parallel Scavenge关注用户线程运行时间占cpu总运行时间的百分比(吞吐量)。Parallel Scavenge 收集器提供了很多参数供用户找到最合适的停顿时间或最大吞吐量

Serialold收集器

Serial 收集器的老年代版本 

ParallelOld收集器

Parallel Scavenge 收集器的老年代版本

CMS收集器

关注用户体验,以最短停顿时间为目标。真正意义上的第一个并发收集器。让用户工作线程和垃圾回收线程可以同时运行。

G1收集器

专门针对于拥有多核处理器和大内存的机器。面向服务器的垃圾收集器,在满足停顿时间的同时还具备高吞吐量的特征。

为解决CMS收集器碎片多的问题,G1收集器会进行空间压缩。用regions(图中的小格子)代替细粒度的空闲列表进行分配,减少内存碎片的产生。

G1收集器追踪查看那个区域的可回收对象多,优先回收。

还可以使用暂停预测模型来满足用户定义的暂停时间目标,并根据指定的暂停时间目标选择要收集的区域数量。

从整体来看基于标记-整理算法,从局部来看基于标记-复制算法

ZGC收集器

ZGC 也采用标记-复制算法 。ZGC 可以将暂停时间控制在几毫秒以内,且暂停时间不受堆内存大小的影响。代价是牺牲了吞吐量。


http://www.ppmy.cn/embedded/17641.html

相关文章

GITEE本地项目上传到远程

由于需要,我这边将本地的仓库上传至GITEE。之前在网上搜索了相关的文档,但是步骤很繁琐,我这边介绍一个非常简单的。 一、在GITEE新建仓库 跟着指引一步步新建。 二、打开本地仓库,删除.git文件 默认情况下不会有这个.git文件&a…

iOS - 多线程-GCD-队列组

文章目录 iOS - 多线程-GCD-队列组1. 队列组1.1 基本使用步骤 iOS - 多线程-GCD-队列组 开发过程中,有时候想实现这样的效果 多个任务并发执行所有任务执行完成后,进行下一步处理(比如回到主线程刷新UI) 1. 队列组 可以使用GC…

Win 进入桌面黑屏,只有鼠标

大家好,我叫秋意零。 今天,遇到一个同事电脑进入桌面黑屏,只有鼠标。经过询问沟通,说是 Windows 突然进行了自动更新,更新之后桌面就黑了屏。经过查询是一个桌面进程没启动才会导致桌面黑屏。首先分两种情况&#xff0…

K8S 哲学 - yaml文件

selector: Pod 对象不应该有 selector 字段。selector 字段通常用于 Service、Deployment、ReplicaSet 等对象,用于选择匹配的 Pod。在 Pod 对象中,这个字段是无效的 apiVersion: apps/v1 kind: Deployment metadata: name: gyk labels: …

llama3本地部署

目录 II.下载 II.验证ollama安装 II.安装llama3 和启动 II.命令行调用 II.api调用 II.参考文献 II.下载 https://ollama.com/download/windows OllamaSetup.exe https://github.com/meta-llama/llama3 II.验证ollama安装 cmd ollama II.安装llama3 和启动 ollama run …

【JAVA】PO、VO、DAO、BO、DTO、POJO你分得清吗?

在Java开发中,PO、VO、DAO、BO、DTO、POJO这些词汇是比较常见的,每个术语都有其特定的含义和用途。下面是它们的具体区别: 名称简要概况用途和特定PO (Persistence Object) 持…

uniapp 页面滚动到指定位置的方法

方法一:使用uni.pageScrollTo 使页面纵向滚到到指定位置 uni.pageScrollTo({scrollTop: 0,duration: 300 }); 如果滚动无效,可以尝试将代码放在settimeOut(异步),或者nextTick(微任务)。若仍滚…

【踩坑日记】SpringBoot集成Kafka,消息没有按照顺序消息问题【已解决】

背景 作为一个合格的码农,当然要学会CV大法了,可是CV也是有风险的,别以为前任写的已经上线那么久了没有问题… 我们需要将埋点信息上报到一个三方平台(S2S)接口,三方平台对时间有要求,同一个用…