近来三周对所在公司系统进行了JVM Tuning,期间阅读了大量的文章. 也得意了我的老大哥cheng的指导,使整个tuning按着合理有序的方向开展.
因为JVM概念理论知识相对较多,对JVM的基础原理也需要很好的理解,所以我将近期所学试图用简洁清晰的语言整理记录,已备日后之用. 所述如有出入, 也请不吝赐教.
什么是垃圾回收:
在计算机科学中垃圾回收是一种自动内存管理. 回收器回收垃圾以及不被程序继续使用的对象占用的内存.
垃圾回收的基本原则:
1. 找到程序中不再被存取的数据对象.
2. 回收被这些对象占用的资源. Java通常找到所有被引用的对象,然后将剩余的对象当作没有被应用的对象进行回收.
下面介绍jvm5.0的几种收集器以及回收算法,我们可以通过JVM参数对垃圾回收器进行选择.
Serial Collector:
JVM Parameter: -XX:+UseSerialGC
Throughput Collector 或 Parallel Collector:
JVM Parameter: -XX:+UseParallelGC
Young Generation GC 使用 parallel threads 算法.
Tenured Generation GC 使用 serial threads 算法.
Parallel Old Generation Collector:
JVM Parameter: -XX:+UseParallelOldGC
Old Generation的垃圾回收在一定阶段使用并行算法,使得old generation的回收速度加快.
The Concurrent Low Pause Collector:
JVM Parameter: -Xincgc 或者-XX:+UseConcMarkSweepGC
The concurrent collector 是一种降低程序暂停时间的算法, 在收集tenured generation 的时候, 与stop all world 算法不同,在Major Collection绝大多数时间application依然运行不被暂停.在我所做试验中, 使用Concurrent Collector时MinorGC会变频繁.
The concurrent low pause collector 在jvm中使用一下参数启用
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
原则上讲,使用会得到更好的response time更低的pause time.
使用此算法也可以使多核处理器更好的发挥它的多线程能力.
值得注意的是 -XX:+UseParallelGC 不能和 -XX:+UseConcMarkSweepGC 一起使用.
分享到:
相关推荐
了解并熟练掌握这些GC算法和JVM调优技巧,对于解决性能问题、优化Java应用的运行效率至关重要,同时也是面试中经常被问到的话题。通过实践和理解,开发者可以更好地理解和控制JVM的行为,从而编写出更高效、更稳定的...
1.4 JVM调优总结(三)-基本垃圾回收算法 9 1.5 JVM调优总结(四)-垃圾回收面临的问题 12 1.6 JVM调优总结(五)-分代垃圾回收详述1 14 1.7 JVM调优总结(六)-分代垃圾回收详述 1.8 JVM调优总结(七)-典型配置...
JVM面试资料。 JVM结构:类加载器,执行引擎,本地方法接口,本地内存结构; 四大垃圾回收算法:复制算法、标记-清除算法、标记-整理算法、分代收集算法 ...JVM调优:命令行指令,设置堆内存大小的参数
### 马士兵JVM调优笔记知识点梳理 #### 一、Java内存结构 Java程序运行时,其内存被划分为几个不同的区域,包括堆内存(Heap)、方法区(Method Area)、栈(Stack)、程序计数器(Program Counter Register)以及...
本笔记是马老师的 JVM 调优实战笔记,涵盖了 JVM 的概述、内存结构、堆内存、垃圾回收算法、JVM 参数等方面的内容。 JVM 调优目录 JVM 调优是 JavaVirtual Machine(Java 虚拟机)的优化过程,目的是为了提高 Java...
本文旨在通过对JVM调优的基础概念和常见的垃圾回收算法进行深入剖析,帮助读者更好地理解和掌握JVM调优的关键技术。 #### 二、基础概念与垃圾回收算法 ##### 2.1 引用计数(Reference Counting) 引用计数是一种...
在JVM调优中,垃圾回收的算法和策略是非常关键的部分。基本的垃圾回收算法包括标记-清除算法、复制算法、标记-整理算法以及分代收集算法。分代收集算法是现代JVM采用的主流算法,它基于这样的观察:大多数对象的生命...
JVM调优是一个复杂的过程,它涉及到对Java虚拟机内部工作原理的深刻理解。本文档总结了JVM调优的基础知识和一些核心概念,旨在帮助开发者更好地掌握Java程序的性能优化。 首先,文档提到了Java中的数据类型分为基本...
### JVM调优详解 #### 一、概述 在IT领域,特别是对于Java开发者而言,Java虚拟机(JVM)性能调优是一项重要的技能。通过合理的配置和优化,可以在很大程度上提高应用系统的性能,减少资源消耗,提升用户体验。本文...
JVM调优总结 JVM(Java Virtual Machine)是 Java 语言的运行环境,负责将 Java 字节码转换为机器码并执行。然而,随着 Java 应用程序的复杂度和规模的增加,JVM 的性能变得越来越重要。因此,JVM 调优是非常必要的...
### JVM调优详解 #### 前言 Java虚拟机(JVM)作为Java程序的运行环境,其性能直接影响着应用程序的响应时间和资源消耗。合理的JVM调优不仅可以提升程序的运行效率,还能优化用户体验。本文将详细介绍几种常用的垃圾...
在这篇文章中,我们将总结JVM调优的一些基本概念和算法。 一、相关概念 JVM调优的基本概念包括引用计数、标记-清除、复制、标记-整理、增量收集和分代垃圾回收等。这些概念都是JVM调优的基础,理解这些概念对于JVM...
JVM调优是一项重要的任务,它旨在优化Java应用的性能,减少内存消耗,提高响应速度,以及确保应用稳定运行。本示例主要探讨的是如何对JVM进行调优,通过具体的程序实例来阐述这一过程。 首先,了解JVM的基本结构至...
JVM调优主要关注内存分配、垃圾收集策略以及类加载机制。常见的调优参数包括: - `-Xms` 和 `-Xmx`:设置堆内存的初始大小和最大大小。 - `-XX:NewRatio` 和 `-XX:SurvivorRatio`:控制新生代和Survivor区的比例。 ...
JVM调优包括选择合适的垃圾收集器、调整堆大小、设置新生代与老年代的比例、控制并发比等。例如,PS(Parallel Scavenge)和PO(Parallel Old)是两种常见的垃圾收集器组合,适用于不同的应用场景。实际调优过程中,...
JVM 调优详解 JVM 调优是 Java 虚拟机(Java Virtual Machine)中的一种技术,用于优化 Java ...垃圾回收是 JVM 调优的重要组成部分,选择合适的垃圾回收算法和收集器可以大大提高 Java 应用程序的性能和内存使用。
"Java面试题-内存+GC+类加载器+JVM调优" 在 Java 面试中,内存、GC、类加载器和 JVM 调优是非常重要的知识点,本文将对这些知识点进行详细的解释和分析。 一、Java 内存模型 在 Java 中,内存主要分为两部分:堆...
### Java-JVM调优总结 #### 一、引言 在现代软件开发中,Java 作为一种广泛使用的编程语言,其应用程序的性能优化至关重要。而 JVM(Java Virtual Machine)作为 Java 程序运行的基础环境,对其进行合理的调优可以...
【JVM调优视频理论及工具】主要涵盖了Java虚拟机(JVM)的优化实践与相关的分析工具。在Java开发中,JVM调优是提升应用程序性能的关键环节,尤其是在高并发、大数据处理等场景下,良好的JVM配置能显著提高系统效率。...