`
sw1982
  • 浏览: 511358 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

jvm内存回收的Behavior based tuning

阅读更多

 

不知道是不是越老越不顶用了。。发现sun上面的两篇英文文档已经很难看懂了。。。 有兴趣的见文章最底部的介绍和链接

 

一。Maximum pause time goal 基于程序运行时,垃圾回收需要对程序暂停最大时间的控制

-XX:MaxGCPauseMillis=<nnn>

 This is interpreted as a hint to the garbage collector that pause times of <nnn> milliseconds or less are desired. The garbage collector will adjust the Java heap size and other garbage collection related parameters in an attempt to keep garbage collection pauses shorter than <nnn> milliseconds. By default there is no maximum pause time goal. These adjustments may cause the garbage collector to occur more frequently , reducing the overall throughput of the application. In some cases the desired pause time goal cannot be met.

 

对于实时性比较高的系统往往不希望程序暂停在垃圾回收上。 另外这个策略看起来也可以加大回收次数频率。

 

 

 

二。throughput goal  基于程序吞吐量的垃圾回收策略控制

-XX:GCTimeRatio=<nnn>

 

Throughput is the percentage of total time not spent in garbage collection, considered over long periods of time. 这个吞吐量的意思就是在一段时间内,花费在非垃圾回收的时间上比例。

The ratio of garbage collection time to application time is

 

1 / (1 + <nnn>)

 

For example -XX:GCTimeRatio=19 sets a goal of 1/20th or 5% of the total time for garbage collection.

 

The time spent in garbage collection is the total time for both the young generation and old generation collections combined. If the throughput goal is not being met, the sizes of the generations are increased in an effort to increase the time the application can run between collections.

 

这个策略对整个系统的吞吐量应该能有一个提升。特别是在硬件资源足够的情况下。

 

 

 

 

p.s. 原文链接

==============================

第一个是介绍垃圾回收的原理

Tuning Garbage Collection with the 5.0 Java[tm] Virtual Machine

The young generation consists of eden plus two survivor spaces . Objects are initially 
allocated in eden.One survivor space is empty at any time, and serves as a 
destination of the next,copying collection of any live objects in eden and the other 
survivor space.
Objects are copied between survivor spaces in this way until they are old enough
 to be tenured, or copied to the tenured generation. 
   

 

 

第二个比较细节的介绍了jvm在不同机器上的表现机制,比如
Ergonomics in the 5.0 JavaTM Virtual Machine

In the J2SE platform version 5.0 a class of machine referred to as a server-class machine has been defined as a machine with

    *

      2 or more physical processors
    *

      2 or more Gbytes of physical memory

On server-class machines by default the following are selected.

    *

      Throughput garbage collector
    *

      Heap sizes

    *

      initial heap size of 1/64 of physical memory up to 1Gbyte

    *

      maximum heap size of ¼ of physical memory up to 1Gbyte

    *

      Server runtime compiler

 

Java HotSpot VM Options 参数汇总

http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp

 

分享到:
评论

相关推荐

    JVM内存回收权威指南

    JVM内存回收最全的手册书籍,详细介绍了各种内存回收算法,是Java程序员进阶的必备书籍

    JVM内存溢出问题解析

    JVM 内存溢出问题解析 JVM 内存溢出是指程序运行所需的内存大于虚拟机能提供的最大内存的情况。这种情况可能是由于数据量过大、死循环、静态变量和静态方法过多、递归、无法确定是否被引用的对象等原因引起的。同时...

    java JVM 内存回收

    Java虚拟机(JVM)的内存回收,也称为垃圾收集(GC),是Java语言特性的重要组成部分,用于自动管理内存,释放不再使用的对象所占用的空间。虽然Java语言本身并不强制要求JVM实现GC,但现代JVM如Oracle的HotSpot JVM...

    JVM内存分配与垃圾回收详解

    Java 堆也是垃圾收集器管理的主要区域,如果从内存回收的角度看,由于现在收集器采用分代收集算法所以可以分为老年代和新生代,再细致有 Eden 空间、from 空间、to 空间,但是无论怎么划分,它都是只是存储对象实例...

    JVM历史发展和内存回收笔记

    Java虚拟机(JVM)是Java程序运行的基础,它的历史发展和内存回收机制是Java开发者必须深入了解的关键领域。本文将详细探讨JVM的发展历程以及内存管理中的垃圾回收机制。 一、JVM的历史发展 1. **早期阶段**:1995...

    JVM内存空间分配笔记

    - 内存回收的主要区域。 #### 六、方法区(元空间) 方法区用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码缓存等数据。在JDK 8之前,方法区是在堆中划分出来的一部分内存区域;而在JDK...

    JVM内存模型详解

    jvm内存模型,jvm脑图,jvm调优,jvm垃圾回收算法,jvm垃圾回收器,逃逸算法等总结。

    JVM内存模型深度剖析与优化.pdf

    JVM内存优化的目的是尽可能让对象都在新生代里分配和回收,避免频繁对老年代进行垃圾回收。以下是一些JVM内存优化的技巧: 1. 设置适当的堆大小:根据实际项目情况,设置适当的堆大小可以避免频繁的垃圾回收。 2. ...

    idea插件JVM内存工具JProfiler11

    《深入理解IDEA插件JProfiler11:高效优化JVM内存》 在Java开发领域,高效运行和优化JVM内存是至关重要的。IntelliJ IDEA(简称Idea)作为广受欢迎的Java集成开发环境,提供了一系列强大的工具来帮助开发者进行性能...

    jvm 内存分析文档

    JVM内存管理主要包括内存结构、内存分配以及垃圾回收(GC)等方面。了解这些知识对于优化Java应用程序的性能至关重要。 ### 1. JVM内存结构 #### 1.1.1 JVM内存概述 JVM内存分为几个关键区域,每个区域都有特定的...

    JVM内存模型以及垃圾回收相关资料

    JVM内存模型与垃圾回收是Java性能优化的关键部分。JVM(Java Virtual Machine)内存模型分为多个区域,包括新生代(New Generation)、老年代(Old Generation)和永久代(Permanent Generation)。新生代又细分为...

    JVM性能调优-JVM内存整理及GC回收.pdf

    总结来说,JVM性能调优中的垃圾回收(GC)和内存管理是确保Java应用高效运行的关键。了解Java对象引用类型、垃圾回收算法以及分代处理垃圾的概念是进行JVM性能调优的基础。这些知识点对于准备Java面试的开发者来说,...

    JVM内存管理和JVM垃圾回收

    Java虚拟机(JVM)内存管理和垃圾回收是Java编程中至关重要的概念,它们直接影响着程序的性能和稳定性。本文将详细解析JVM内存结构以及垃圾回收机制。 首先,JVM内存主要分为四个区域: 1. **堆(Heap)**:这是...

    JVM入门实战/arthas实战/垃圾回收算法/垃圾回收器/jvm内存模型分析

    第二节:JVM内存模型 1.1 概念 1.2 JVM内存模型 1.3 Heap堆内存模型 第三节:定位垃圾对象的依据 1.1 引用计数法 1.2 可达性算法 第四节:垃圾回收算法 1.1标记清除算法 1.2复制算法 1.3 标记整理(标记压缩)...

    JVM 内存管理之道

    JVM 内存管理之道 JVM垃圾回收机制 JVM GC组合 JVM 内存监控工具

    JVM内存优化、垃圾回收、内存分析知识

    认识JVM内存优化, 避免最大的误区:认为JVM内存越大越好。看到一个线程 blocked就认为阻塞了。

    JVM内存管理白皮书

    在这份由Sun Microsystems公司出版的《JVM内存管理白皮书》中,我们可以找到关于Java虚拟机(JVM)内存管理的详细介绍和深入分析。这份文档对于想要深入了解JVM工作原理的读者来说是一份宝贵的学习资料。在这份...

Global site tag (gtag.js) - Google Analytics