垃圾收集器
Serial:单线程收集器、在进行垃圾收集的时候需要暂停其他线程。优点:简单高效。适用于新生代。复制算法
SerialOld:是Serial收集器的l老年代版本,,也是一个单线程收集器,不同的是采用标记-整理算法。也会去暂停其他线程。标记整理算法
ParNew:Serial收集器的多线程版本,也就是多线程收集,还是会暂停其他线程,但是时间短了。复制算法(以上三种为什么要暂停,为了保证该回收会被回收)
Parall Scanvenge:是一个新生代收集器,使用的复制算法,而且是并行多线程收集器。更关注系统的吞吐量(吞吐量=运行用户代码时间/(运行用户代码的时间+垃圾收集时间))。吞吐量越大,垃圾收集时间越短。(可以直接设置吞吐量大小,可以设置最大的垃圾收集停顿时间)
Parall Old:Parall Scanvenge收集器的老年代版本,使用多线程和标记整理进行垃圾回收。
CMS:以获取最短回收停顿时间为目标的收集器,采用的是标记清除
并发类收集器和并行类收集器:垃圾收集线程与我们的业务一起跑的收集器称为并发类垃圾收集器,多线程全跑的收集器称为并行类收集器。
标记 清除:标记非常耗时:先找到GCroot(这一步不是很耗时) 找到与之直接关联的引用链对象并标记
1、 初始标记:找到所有与GCRoot以及与之直接相关联的对象。这一步不是很耗时所以可以打断其他线程再去标记(引用链上对象先不找,因为我不知道这条引用链有多长,可能会非常耗时)。 注意这一步默认使用的是多线程(调优点:如果你在业务代码中没有什么多线程代码可以将这个设置为单线程,减少了线程创建的开销,提升性能)
相关文章
久经沙场的程序员居然也被某鱼的假程序员骗了,程序员之间的信任应该是最高的,他一个人毁了这种信任感
最近(7月15日)接到一个客户需要开发一个招标的APP,就是将各大平台的招标信息收集过来之后显示在这个app上,复杂的地方主要是在后台收集数据。前端就是一个展示界面。但是做起来也比较麻烦,所以打算找一...
设计模式 《head first 设计模式》
策略设计模式:strategy pattern 定义了算法族,分别封装起来,让他们之间可以互相替换。 此模式让算法的变化独立于算法的客户类 客户类,以 接口定义的 实例变量作其域,即,将部分属性 委托...
SpringBoot自定义环境变量——EnvironmentPostProcessor
现有需求是将数据库配置文件中账号密码相关信息分离且加密,用到了SpringBoot中 EnvironmentPostProcessor接口。可以将外部配置文件读取注入系统中。 实现 Environme...
我使用Spring AOP实现了用户操作日志功能
我使用Spring AOP实现了用户操作日志功能 今天答辩完了,复盘了一下系统,发现还是有一些东西值得拿出来和大家分享一下。 需求分析 系统需要对用户的操作进行记录,方便未来溯源 第一个想法是在每种方...
谈谈设计对软件工程目标实现的影响
本文从个人经验出发,谈谈设计对软件工程目标实现的影响。 一、软件工程概念 首先明确下"软件工程的概念"。 看下原文(注意,原文也有一些问题,但总体没有大毛病): 既然有分歧,我只能选择自己认可的部分,...
TypeScript(4)接口
介绍 TypeScript 的核心原则之一是对值所具有的结构进行 类型检查。我们使用接口(Interfaces)...
Stream.toList()和Collectors.toList()的性能比较
昨天给大家介绍了Java 16中的Stream增强,可以直接通过toList()来转换成List。 主要涉及下面这几种转换方式: list.stream().toList(); list.stream...
MySQL学习-idea连接数据库导入jar包
导包先有包 !!!一定要下载和自己MySQL版本一样的jar包!!! !!!一定要下载和自己MySQL版本一样的jar包!!! !!!一定要下载和自己MySQL版本一样的jar包!!! 如果没有包,参...
设计模式之解释器模式
解释器模式字面意思,也即解释某些内容的含义。这种设计模式是实际开发中最不容易用到的。比如SQL解析,符号处理引擎,会用到解释器模式,属于更底层的开发人员才会用到的设计模式。 本文通过解释器模式的概念、...
SpringCloud微服务实战——搭建企业级开发框架(三十三):整合Skywalking实现链路追踪
Skywalking是由国内开源爱好者吴晟(原OneAPM工程师)开源并提交到Apache孵化器的产品,它同时吸收了Zipkin/Pinpoint/CAT的设计思路,支持非侵入式埋点。是一款基于分布式...
JavaSE_lambda表达式 Stream流 Option类
对Java_lambda表达式 Stream流 Option类进行总结和简要介绍 1 Lambda表达式 1.1 作用 为了简化匿名内部类的书写 1.2 思想 函数式编程思想 : 强调的是结果 , 而...
谈谈对不同I/O模型的理解 (阻塞/非阻塞IO,同步/异步IO)
一、关于I/O模型的问题 最近通过对ucore操作系统的学习,让我打开了操作系统内核这一黑盒子,与之前所学知识结合起来,解答了长久以来困扰我的关于I/O的一些问题。 1. 为什么redis能以单工作线...
Mybatis框架入门
首先,先说一下写这个入门程序的需求与开发步骤: 那前三步就不说了有一些基础就可以办到 写入配置文件时,主要写入两种类型的配置文件。第一种类型是主配置文件,它管理与接口对应的其他配置文件。[En]Whe...