标签归档:gc

深入理解 Java G1 垃圾收集器

本文首先简单介绍了垃圾收集的常见方式,然后再分析了 G1 收集器的收集原理,相比其他垃圾收集器的优势,最后给出了一些调优实践。

一、什么是垃圾回收

首先,在了解 G1 之前,我们需要清楚的知道,垃圾回收是什么?简单的说垃圾回收就是回收内存中不再使用的对象。

垃圾回收的基本步骤有 2 步:

  • Step-1:查找内存中不再使用的对象
  • Step-2:释放这些对象占用的内存

1. 查找内存中不再使用的对象

继续阅读深入理解 Java G1 垃圾收集器

G1垃圾收集器入门教程(8)——总结

在本教程中,你已经大致学习了包含在 Java JVM 中的 G1 垃圾收集器。首先,你学会了堆内存和垃圾收集器是如何成为任意 Java JVM 实现的关键组成部分的。接下来,你回顾了如何使用 CMS 收集器和 G1 收集器来进行垃圾回收的工作。然后,你还学习了 G1 的命令行开关和选项的相关知识,以及使用 G1 的最佳实践。最后,你学会了如何在 GC 日志文件中记录对象和数据的相关信息。

继续阅读G1垃圾收集器入门教程(8)——总结

G1垃圾收集器入门教程(7)——G1的垃圾收集日志

本教程涵盖的最后一个主题会介绍如何使用日志信息来分析 G1 收集器的性能。本节会提供一些选项和开关的快速概述,你可以用来收集输出至日志中的数据和信息。

设置日志详情

你可以将日志设置为三个不同的细节级别。

(1)-verbosegc

等同于-XX:+PrintGC开关,可以将日志的详细级别设置为 fine。示例输出:

继续阅读G1垃圾收集器入门教程(7)——G1的垃圾收集日志

G1垃圾收集器入门教程(6)——命令行选项和最佳实践

在本节中,我们将学习 G1 收集器的各种命令行选项。

命令行的基本用法

如果要启用 G1 收集器,那么可以使用-XX:+UseG1GC开关。

以下是一个启动 Java2Demo 程序的命令行示例,这个程序包含在下载得到的 JDK 演示和示例程序包之中:

java -Xmx50m -Xms50m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -jar
c:\javademos\demo\jfc\Java2D\Java2demo.jar

关键的命令行开关

G1垃圾收集器入门教程(4)——回顾CMS垃圾收集器

并发标记清除(CMS)收集器(也被称为并发低暂停收集器)负责收集老年代的垃圾。CMS 在执行大部分的垃圾收集工作时会尝试和应用程序的线程并发工作,这样便能尽可能地减少由于垃圾收集而造成的停顿时间。通常,并发低暂停收集器不会复制或整理存活的对象。进行垃圾收集时,不会移动存活的对象。如果内存碎片的问题较为严重,那么可以分配一块更大的堆内存。

注意:年轻代的 CMS 收集器使用与并行收集器相同的算法。

CMS 收集阶段

继续阅读G1垃圾收集器入门教程(4)——回顾CMS垃圾收集器

G1垃圾收集器入门教程(3)——G1垃圾收集器

垃圾优先(G1)收集器是一种服务器式的垃圾收集器,适用于具有大容量内存的多处理器计算机。它可以高概率地满足垃圾收集(GC)停顿时间的目标,同时达到高吞吐量。在 Oracle 的 JDK 7u4 以及更新版本中,G1 垃圾收集器已经得到完全的支持了。G1 收集器是专门为有以下要求的应用程序而设计的:

  • 可以和应用程序的线程并发操作,类似于 CMS 收集器。
  • 整理空闲的内存空间,不会由于冗长的 GC 而导致长时间停顿。
  • 需要更加可预测的 GC 停顿持续时间。
  • 不想牺牲太多的吞吐量性能。
  • 不需要增加大量的 Java 堆内存。

继续阅读G1垃圾收集器入门教程(3)——G1垃圾收集器

G1垃圾收集器入门教程(2)——Java技术和JVM

Java 概述

Java 是一种编程语言和计算平台,它是由 Sun 微系统公司于 1995 年首次发布的。Java 程序包括实用工具、游戏和商业应用等等,而 Java 正是驱动这些程序的底层技术。Java 在全世界大约 8.5 亿台个人电脑上运行,并且还在全世界数十亿台设备上运行,包括移动设备和电视设备。Java 由一些关键组件构成,它们组成一个整体,形成 Java 平台。

Java 运行时版本

继续阅读G1垃圾收集器入门教程(2)——Java技术和JVM

G1垃圾收集器入门教程(1)——概览

本文目标

本教程涵盖如何使用 G1 垃圾收集器,以及如何与 Hotspot JVM 配合使用的基础知识。你将会学习 G1 垃圾收集器的内部工作原理、启用 G1 的关键命令行开关,以及记录 G1 操作日志的选项。

完成时间

预计大约 1 小时。

简介

本教程涵盖 Java 语言中的 Java 虚拟机(JVM)的 G1 垃圾收集相关的基础知识。在本教程的第一部分中,我们会概述 JVM 的相关知识,并且会介绍垃圾收集机制及其性能。接下来,我们会回顾 Hotspot JVM 使用的 CMS 垃圾收集器是如何工作的。然后,我们会逐步讲解 Hotspot JVM 在使用 G1 垃圾收集器时,垃圾收集机制的工作原理。紧接着,还会有一个章节涵盖 G1 垃圾收集器能够使用的垃圾收集命令行选项。最后,你将会学到 G1 垃圾收集器能够使用的日志选项。

硬件和软件需求

继续阅读G1垃圾收集器入门教程(1)——概览