JDK1.8默认的垃圾回收器

简介: JDK1.8默认的垃圾回收器

在我们曾经见到的很多书籍或者资料中,代表的都是Parallel Scavenge(新生代) + Serial Old(老年代)。这其实是没有及时更新造成的一个误导。

通过官方网站可以得到证实:

在 JDK 8 的官网有这样的说法:

链接:https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/collectors.html

Parallel compaction is enabled by default if the option -XX:+UseParallelGC has been specified. The option to turn it off is -XX:-UseParallelOldGC.

大致意思就是说-XX:+UseParallelGC 就会开始 Parallel 收集器除非手动关闭。

JDK 源码 commit 记录说到:

Server-class machine ergonomics was introduced in jdk5. If the machine upon which

the jvm is running is powerful enough (currently, at least 2 physical cores plus

at least 2gb of memory), the server jvm is invoked using the parallel scavenger

rather than the serial scavenger. Currently the old gen collector used is

serial mark-sweep-compact. Now that the parallel old gen collector is mature,

we should change to using it instead.

Issue Links

在 JDK 7U4 之前确实 UserParallelGC 用的就是 Serial,在这个版本之后 Parallel 已经很成熟了,所以直接替换了旧的收集器,所以 JDK 7u4 以后的 7 和 JDK 8 老年代默认使用的都是 Parallel 收集器,只是网上很多资料往往人云亦云,没有更新这个细节。

链接:https://bugs.openjdk.java.net/browse/JDK-6679764

http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/rev/24cae3e4cbaa

另外:

PS MarkSweep 只是回收器的别名,他可以指代 Serial Old 和 Parallel Old。

-XX:+UseParallelGC 和 -XX:+UseParallelOldGC 结果一样,都是用的 Parallel Old

参考文章:https://blog.csdn.net/weixin_43753797/article/details/106450040


相关文章
|
6月前
|
Java
JDK8默认垃圾回收器详解
JDK8默认垃圾回收器详解
197 0
|
2月前
|
安全 Java API
【Java炸裂更新】JDK 22:区域锚定引领G1垃圾回收革命,性能飙升新高度!
【9月更文挑战第6天】JDK 22的发布,标志着Java在性能优化和垃圾回收技术上的又一次重大突破。区域锚定技术的引入,不仅提升了G1垃圾收集器的效率,也为Java应用的性能提升注入了新的动力。随着Java生态的不断发展和完善,我们有理由相信,Java将继续在编程界保持其铁打英雄的地位,为开发者们带来更多惊喜和可能。 让我们共同期待,Java在JDK 22的引领下,开启一个全新的性能飙升时代!
75 17
|
3月前
|
算法 Java
JDK版本特性问题之想控制 G1 垃圾回收器的并行工作线程数量,如何解决
JDK版本特性问题之想控制 G1 垃圾回收器的并行工作线程数量,如何解决
|
6月前
|
监控 Java 开发者
JDK 9新特性深度解析:垃圾回收器的改进与优化
本文将深入探讨JDK 9中垃圾回收器的改进与优化。随着Java语言的不断发展,垃圾回收器作为内存管理的核心组件也经历了多次迭代和改进。JDK 9引入了新的垃圾回收器,旨在提高内存回收的效率和性能,降低垃圾回收的停顿时间。本文将详细介绍这些改进,以及如何在实际应用中利用这些改进来提高应用程序的性能和稳定性。
|
Java
JDK8默认垃圾回收器
JDK8默认垃圾回收器
1184 0
|
2月前
|
Java
安装JDK18没有JRE环境的解决办法
安装JDK18没有JRE环境的解决办法
293 3
|
3月前
|
Java 关系型数据库 MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【8月更文挑战第19天】在Linux上搭建Java Web应用环境,需安装JDK 1.8、Tomcat及MariaDB。本指南详述了使用apt-get安装OpenJDK 1.8的方法,并验证其版本。接着下载与解压Tomcat至`/usr/local/`目录,并启动服务。最后,通过apt-get安装MariaDB,设置基本安全配置。完成这些步骤后,即可验证各组件的状态,为部署Java Web应用打下基础。
57 1
|
3月前
|
Oracle Java 关系型数据库
Mac安装JDK1.8
Mac安装JDK1.8
685 4
|
1天前
|
Ubuntu Java
Ubuntu之jdk安装
以下是Ubuntu之jdk安装的详细内容
|
1月前
|
Oracle Java 关系型数据库
jdk17安装全方位手把手安装教程 / 已有jdk8了,安装JDK17后如何配置环境变量 / 多个不同版本的JDK,如何配置环境变量?
本文提供了详细的JDK 17安装教程,包括下载、安装、配置环境变量的步骤,并解释了在已有其他版本JDK的情况下如何管理多个JDK环境。
578 0