java HotSpot虚拟机垃圾回收优化(二、Ergonomics)
来源:互联网 发布:家居网络推广招聘 编辑:程序博客网 时间:2024/04/28 12:04
Ergonomics是JVM和垃圾收集器调整的过程,如基本行为调整,提高应用性能。JVM提供平台相关的默认垃圾收集器,堆空间,运行时编译器选项。这些选
项与不同类型和应用程序的需求相匹配,同时需要较少的命令调整。另外,基本行为的调整动态改变堆大小来满足一些应用的特殊需求。
基本行为调整
对于并行垃圾收集器,java SE提供两种基于达成指定应用程序目标(最大暂停时间目标和应用吞吐量目标)的垃圾收集参数(此两参数对其他垃圾收集器
无效)。注:这些调整并不一定有效。应用需要足够大的堆空间存放应用数据。另外,最小堆内存的设置可能阻止此种调整。
Maximum Pause Time Goal
暂停时间是指垃圾收收集器停止应用程序和恢复不再使用空间的时间。设置Maximum Pause Time Goal的意图是限制这些停顿的最大时间。停顿的平均
时间与平均时间变化由垃圾收集器维护,如果暂停的平均时间与平均时间变化的值的和大于设置的最大暂停时间,那么垃圾收集器会以为此目标不能
满足。
Maximum Pause Time Goal由命令行选项 -XX:MaxGCPauseMillis= 指定,这可以解释为暗示垃圾收集器 毫秒或者更少停顿时间是理想的。
垃圾收集器会调整java 堆大小和其他一些垃圾收集的参数以确保达到暂停时间少于毫秒的目的。默认情况下没有设置最大暂停时间参数。这种
调整可以引起垃圾回收发生的更加频繁,降低应用程序的总吞吐量。垃圾收集器会尽量在满足Throughput Goal之前满足Maximum Pause Time Goal,
在一些场合,尽管Maximum Pause Time Goal不会被满足。
Throughput Goal
Throughput Goal是以就垃圾收集器花费的时间和应用程序运行的时间而言衡量的。此目标通过命令行参数 -XX:GCTimeRatio=指定。此时垃圾收
集时间与应用时间的比应为1/(1+),例如:-XX:GCTimeRatio=19,表示设置一个垃圾收集时间占总时间1/20或者5%比重的目标。
垃圾收集时间是新生代与老年代垃圾收集时间的总和。如果Throughput Goal不被满足,堆中代的空间将会增加以增加程序可以运行的时间。
Footprint Goal
如果Maximum Pause Time Goal和Throughput Goal都被满足,然后垃圾收集器就会减少堆空间大小直到两个目标中一个(永远都是throughput goal)
不被满足。然后不满足的目标将会被重新注册。
调整策略
不要为堆空间选择最大值,除非你知道你需要比默认堆内存更大空间的堆空间。选择throughput goal应该足够你的程序所使用。
堆空间会增加或者收缩到选择throughput goal支持的大小。程序行为的改变也会引起堆空间的增加或者收缩。如如果应用程序开始以更高的速率分配,
堆将增长以保持相同的吞吐量。
如果堆空间大小增长至设置的最大堆内存,但是throughput goal目标没有被满足,那么就是设置的最大堆空间设置的太小了。将最大堆空间值设置为
接近该平台总的物理内存但不引起程序的交换的值,如果throughput goal仍没被满足,那么此目标的应用程序时间比重对于该平台的可用内存来说
设置的高了。
如果throughput goal不被满足,并且垃圾收集时间太长,这时候,设置Maximum Pause Time Goal(设置一个最大暂停时间),设置Maximum Pause
Time Goal可能意思着不能满足throughput goal,所以设置最大暂停时间是对应用程序的一种可以接受的折中方法。
典型的就是当垃圾收集器在满足相互矛盾的目标时造成堆内存振荡,即使程序已经达到一个稳定状态。完成throughput goal目标(可能需要较大堆内存
)的需要与都可能需要较小堆内存的Maximum Pause Time Goal和Footprint Goal竞争。
- java HotSpot虚拟机垃圾回收优化(二、Ergonomics)
- java HotSpot虚拟机垃圾回收优化(一、Introduction)
- java HotSpot虚拟机垃圾回收优化(五、Available Collectors)
- java HotSpot虚拟机垃圾回收优化(六、The Parallel Collector)
- Java SE 6 Hotspot [TM] 虚拟机垃圾回收调优
- Java SE 6 Hotspot 虚拟机垃圾回收调优
- Java -- Hotspot虚拟机调优与GC垃圾回收策略
- Java SE 6 Hotspot 虚拟机垃圾回收调优
- 三大Java 虚拟机垃圾回收机制的比较(HotSpot, JRockit, IBM JVM)
- 三大Java 虚拟机垃圾回收机制的比较(HotSpot, JRockit, IBM JVM)
- 三大Java 虚拟机垃圾回收机制的比较(HotSpot, JRockit, IBM JVM)
- 三大Java 虚拟机垃圾回收机制的比较(HotSpot, JRockit, IBM JVM)
- 三大Java 虚拟机垃圾回收机制的比较(HotSpot, JRockit, IBM JVM)
- 深入理解Java虚拟机(二)-----垃圾回收(GC)
- 【Java虚拟机】之二 垃圾回收算法
- Java虚拟机二:垃圾回收机制
- Java 垃圾回收 调优 HotSpot JV
- java虚拟机------垃圾回收
- DIKW体系
- 2017.3.18 2014年初中竞赛试题(南海) 树
- UTM(Urchin Tracking Module)简介
- C++11 sort, vector, lambda——vector 自定义排序
- vmware异常关闭后导致虚拟机无法打开问题解决办法
- java HotSpot虚拟机垃圾回收优化(二、Ergonomics)
- js学习记录9
- [leetcode] 538. Convert BST to Greater Tree
- ssh远程登陆
- 计算机网络概述
- Android inputStream.read(Buffer)!= -1说明什么?
- C语言:三种基础方法求2个数的最大公约数。
- java调用aimms 以AIMMS SDK的官方示例Basic为例(详细介绍)
- 移动互联网App测试流程及测试点(个人整理版)