首页 php教程 PHP开发 JVM中的垃圾收集器

JVM中的垃圾收集器

Nov 22, 2016 pm 04:56 PM
jvm

Serial收集器: 一种新生代的单线程收集器,采用复制算法回收。当它进行垃圾收集时,其他用户的所有线程都将暂停。

Serial Old收集器:Serial的老年代版本,采用的是标记-清除算法,同样也是单线程收集器。

ParNew收集器:ParNew收集器实际上是Serial的多线程版本,除了多线程收集垃圾外,其余的包括收集算法(复制算法)、对象分配规则、回收策略等都与Serial收集器完全一样。

Parallel Scavenge 收集器:是一种新生代收集器,采用的是复制算法,是一种并行的多线程收集器,该收集器旨在提高系统的吞吐量(运行用户代码的时间/(运行用户代码的时间+垃圾收集时间)),所以Parallel Scavenger收集器又被称为”吞吐量优先”收集器。

Parallel Old收集器:是Parallel Scavenge 收集器的老年代版本,采用的是‘标记-清除’算法。

CMS收集器:尤其重视用户服务的响应速度,希系统的停顿时间最短,以给用户带来较好的体验。并发收集,低停顿。使用的而是‘标记-清除’算法。

G1收集器:当前收集器技术发展的最前沿技术之一

      并行与并发的方式;


       采用的分代收集,可以不与其它收集器配合独立管理整个GC堆;


       空间整合:整体上看G1采用的是‘标记-整理’算法,但是从局部来看是基于”复制”算法。但无论如何,这两种算法都意味着G1算法都不会产生内存空间碎片,收集后可以提供规整的可用内存。


       运作步骤:初始标记;并发标记;最终标记;筛选回收。

备注:

并发:垃圾收集线程可以和用户线程同时执行

并行:可以有多条垃圾收集线程,但是此时的用户线程仍然处于等待状态。


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

一个分布式 JVM 监控工具,非常实用! 一个分布式 JVM 监控工具,非常实用! Aug 15, 2023 pm 05:15 PM

该项目为了方便开发者更快监控多个远程主机jvm,如果你的项目是Spring boot那么很方便集成,jar包引入即可,不是Spring boot也不用气馁,你可以快速自行初始化一个Spirng boot程序引入jar包即可

JVM命令行参数详解:掌控JVM运行的秘密武器 JVM命令行参数详解:掌控JVM运行的秘密武器 May 09, 2024 pm 01:33 PM

通过JVM命令行参数,您可以细粒度地调整JVM行为。其中通用参数包括:设置Java堆大小(-Xms、-Xmx)设置新生代大小(-Xmn)启用并行垃圾收集器(-XX:+UseParallelGC)减少Survivor区内存占用(-XX:-ReduceSurvivorSetInMemory)消除冗余垃圾回收(-XX:-EliminateRedundantGCs)打印垃圾回收信息(-XX:+PrintGC)使用G1垃圾收集器(-XX:-UseG1GC)设置最大垃圾回收暂停时间(-XX:MaxGCPau

JVM内存管理要点与注意事项 JVM内存管理要点与注意事项 Feb 20, 2024 am 10:26 AM

掌握JVM内存使用情况的要点与注意事项JVM(JavaVirtualMachine)是Java应用程序运行的环境,其中最为重要的就是JVM的内存管理。合理地管理JVM内存不仅可以提高应用程序的性能,还可以避免内存泄漏和内存溢出等问题。本文将介绍JVM内存使用的要点和注意事项,并提供一些具体的代码示例。JVM内存分区JVM内存主要分为以下几个区域:堆(He

JVM虚拟机的作用及原理解析 JVM虚拟机的作用及原理解析 Feb 22, 2024 pm 01:54 PM

JVM虚拟机的作用及原理解析简介:JVM(JavaVirtualMachine)虚拟机是Java编程语言的核心组成部分之一,它是Java的最大卖点之一。JVM的作用是将Java源代码编译成字节码,并负责执行这些字节码。本文将介绍JVM的作用及其工作原理,并提供一些代码示例以帮助读者更好地理解。作用:JVM的主要作用是解决了不同平台上Java程序的可移

Java错误:JVM内存溢出错误,如何处理和避免 Java错误:JVM内存溢出错误,如何处理和避免 Jun 24, 2023 pm 02:19 PM

Java是一种流行的编程语言,在开发Java应用程序的过程中,可能会遇到JVM内存溢出错误。这种错误通常会导致应用程序崩溃,影响用户体验。本文将探讨JVM内存溢出错误的原因和如何处理和避免这种错误。JVM内存溢出错误是什么?Java虚拟机(JVM)是Java应用程序的运行环境。在JVM中,内存被分为多个区域,其中包括堆、方法区、栈等。堆是用于存储创建的对象的

如何有效地调整JVM堆内存大小? 如何有效地调整JVM堆内存大小? Feb 18, 2024 pm 01:39 PM

JVM内存参数设置:如何合理调整堆内存大小?在Java应用程序中,JVM是负责管理内存的关键组件。其中,堆内存是用于存储对象实例的地方,堆内存的大小设置对应用程序的性能和稳定性有着重要影响。本文将介绍如何合理调整堆内存大小的方法,并附带具体代码示例。首先,我们需要了解一些关于JVM内存的基础知识。JVM的内存分成了几个区域,包括堆内存、栈内存、方法区等。其中

Java程序检查JVM是32位还是64位 Java程序检查JVM是32位还是64位 Sep 05, 2023 pm 06:37 PM

在编写java程序来检查JVM是32位还是64位之前,我们先讨论一下JVM。JVM是java虚拟机,负责执行字节码。它是Java运行时环境(JRE)的一部分。我们都知道java是平台无关的,但是JVM是平台相关的。我们需要为每个操作系统提供单独的JVM。如果我们有任何java源代码的字节码,由于JVM,我们可以轻松地在任何平台上运行它。java文件执行的整个过程如下-首先,我们保存扩展名为.java的java源代码,编译器将其转换为扩展名为.class的字节码。这发生在编译时。现在,在运行时,J

揭秘JVM工作原理:深入探索Java虚拟机的原理 揭秘JVM工作原理:深入探索Java虚拟机的原理 Feb 18, 2024 pm 12:28 PM

JVM原理详解:深入探究Java虚拟机的工作原理,需要具体代码示例一、引言随着Java编程语言的迅猛发展和广泛应用,Java虚拟机(JavaVirtualMachine,简称JVM)也成为了软件开发中不可或缺的一部分。JVM作为Java程序的运行环境,能够提供跨平台的特性,使得Java程序能够在不同的操作系统上运行。在本文中,我们将深入探究JVM的工作原

See all articles