五分钟了解Java10针对垃圾收集的改进

简介: 五分钟了解Java10针对垃圾收集的改进

Java10 已经发布了大概有一个多月了。我们在之前的文中介绍过10为我们带来的一些新特性JDK10要来了:下一代 Java 有哪些新特性?。其中就提到了10 关于G1垃圾收集器的一些改进。G1在Java 9的时候已经是被作为默认的垃圾收集器了。如果你了解G1的话,应该知道它是一个更注重低停顿的收集器。有关G1的内容你可以移步一步步图解G1

那么在10中针对垃圾回收都有哪些改进和改变呢?

严格的来说有两处是与垃圾回收有关的:

分别是JEP304和JEP307。

JEP 304: 垃圾回收器接口(Garbage Collector Interface)

就是引入了一个一个垃圾回收器的接口。让Hotspot虚拟机的模块化水平得到了进一步的提高,让我们可以轻松的添加一个新的GC或者排除掉JDK内部自带的现存的某个GC,总之,就是解耦了。

在Java10 之前,垃圾回收器的代码被分散到很多地方,这一点,那一点,你如果要想自己实现一个全新的GC,必须得了解这些需要改动的地方。简直牵一发而动全身,耦合。

如今有了这个接口你就轻松了。有关这个接口的内容我们就不多赘述了。你可以移步此文了解:JDK10要来了:下一代 Java 有哪些新特性?

接下来我们重点说说10针对G1的改进。

JEP 307: G1的Full GC多线程

这个JEP的目标只有一个,那就是要把G1的full GC算法给并行化,从而提高性能。

你知道,G1最大的亮点就是可以尽量的避免full gc。但毕竟是“尽量”,在有些情况下,G1就要进行full gc了,比如如果它无法足够快的回收内存的时候,它就会强制停止所有的应用线程然后清理。在Java10之前,一个单线程版的标记-清除-压缩算法被用于full gc。

所以为了尽量减少full gc带来的影响,在Java10中,就把之前的那个单线程版的标记-清除-压缩的full gc算法改成了支持多个线程同时full gc。这样也算是减少了full gc所带来的停顿。

你可以通过-XX:ParallelGCThreads这个参数来指定用于并行GC的线程数。

目录
相关文章
|
监控 算法 Java
Java内存管理:垃圾收集器的工作原理与调优实践
在Java的世界里,内存管理是一块神秘的领域。它像是一位默默无闻的守护者,确保程序顺畅运行而不被无用对象所困扰。本文将带你一探究竟,了解垃圾收集器如何在后台无声地工作,以及如何通过调优来提升系统性能。让我们一起走进Java内存管理的迷宫,寻找提高应用性能的秘诀。
|
算法 安全 Java
Java内存管理:深入理解垃圾收集器
在Java的世界里,内存管理是一块基石,它支撑着应用程序的稳定运行。本文将带你走进Java的垃圾收集器(GC),探索它是如何默默守护着我们的内存安全。我们将从垃圾收集的基本概念出发,逐步深入到不同垃圾收集器的工作机制,并通过实例分析它们在实际应用中的表现。文章不仅旨在提升你对Java内存管理的认识,更希望你能通过这些知识优化你的代码,让程序运行更加高效。
159 3
|
Kubernetes Cloud Native Java
云原生之旅:从容器到微服务的演进之路Java 内存管理:垃圾收集器与性能调优
【8月更文挑战第30天】在数字化时代的浪潮中,企业如何乘风破浪?云原生技术提供了一个强有力的桨。本文将带你从容器技术的基石出发,探索微服务架构的奥秘,最终实现在云端自由翱翔的梦想。我们将一起见证代码如何转化为业务的翅膀,让你的应用在云海中高飞。
|
存储 算法 Java
解释 Java 堆空间和垃圾收集
【8月更文挑战第22天】
136 0
|
存储 监控 算法
Java内存管理深度剖析:从垃圾收集到内存泄漏的全面指南####
本文深入探讨了Java虚拟机(JVM)中的内存管理机制,特别是垃圾收集(GC)的工作原理及其调优策略。不同于传统的摘要概述,本文将通过实际案例分析,揭示内存泄漏的根源与预防措施,为开发者提供实战中的优化建议,旨在帮助读者构建高效、稳定的Java应用。 ####
241 35
|
存储 监控 算法
Java内存管理:从垃圾收集到性能优化
【8月更文挑战第4天】在Java的世界中,内存管理是一块神秘的领域,它不仅关乎程序的稳定运行,更直接影响到系统的性能表现。本文将带你深入理解Java的垃圾收集机制,探讨如何通过合理的内存管理策略来提升应用效率。我们将一起分析JVM内存结构,探索不同的垃圾收集算法,并借助实际代码示例,学习如何监控和调优内存使用,以期达到减少延迟、防止内存泄漏的目的。
|
监控 算法 Java
深入理解Java中的垃圾回收机制在Java编程中,垃圾回收(Garbage Collection, GC)是一个核心概念,它自动管理内存,帮助开发者避免内存泄漏和溢出问题。本文将探讨Java中的垃圾回收机制,包括其基本原理、不同类型的垃圾收集器以及如何调优垃圾回收性能。通过深入浅出的方式,让读者对Java的垃圾回收有一个全面的认识。
本文详细介绍了Java中的垃圾回收机制,从基本原理到不同类型垃圾收集器的工作原理,再到实际调优策略。通过通俗易懂的语言和条理清晰的解释,帮助读者更好地理解和应用Java的垃圾回收技术,从而编写出更高效、稳定的Java应用程序。
|
监控 算法 Java
Java中的垃圾收集机制:原理与优化实践
在Java的内存管理领域中,垃圾收集(Garbage Collection, GC)扮演着至关重要的角色。本文将深入探讨Java垃圾收集的核心概念、工作机制以及性能调优策略。通过具体案例分析,我们揭示不同垃圾收集器的行为模式并讨论如何根据应用场景做出合理选择。针对JVM监控和诊断工具的使用也将被详细介绍,旨在为读者提供一套系统的解决方案,以实现Java应用的性能优化。
198 26
|
监控 安全 Java
Java Z 垃圾收集器如何彻底改变内存管理
大家好,我是V哥。今天聊聊Java的ZGC(Z Garbage Collector)。ZGC是一个低延迟垃圾收集器,专为大内存应用场景设计。其核心优势包括:极低的暂停时间(通常低于10毫秒)、支持TB级内存、使用着色指针实现高效对象管理、并发压缩和去碎片化、不分代的内存管理。适用于实时数据分析、高性能服务器和在线交易系统等场景,能显著提升应用的性能和稳定性。如何启用?只需在JVM启动参数中加入`-XX:+UseZGC`即可。
317 0
|
存储 监控 算法
Java的垃圾收集器:理解与应用
【8月更文挑战第21天】在Java的世界里,垃圾收集器(Garbage Collector)是不可或缺的角色,它默默地在后台工作,保证内存的有效利用。本文将探讨Java的垃圾收集机制,包括其工作原理、常见的垃圾收集算法以及如何优化垃圾收集过程。通过了解这些内容,开发者可以编写出更高效、更稳定的Java应用程序。