一步步优化JVM三:GC优化基础】的更多相关文章

本节主要描述关于垃圾回收器性能的三个指标,三个关于垃圾回收器优化的基本原则,以及优化HotSpot VM的垃圾回收器的信息收集,在这些指标中权衡以及信息的收集是非常重要的. 性能指标    吞吐量:衡量垃圾回收器运行在性能峰值的时候不需要关心垃圾回收器暂停的时间或者需要占用内存的能力.    延迟:衡量垃圾回收器最小化甚至消灭由垃圾回收器引起的暂停时间和应用抖动的能力.    内存占用:衡量为了高效的运行,垃圾回收器需要的内存.        一项指标的提升,往往需要牺牲其他一项或者两项指标.换…
如果你已经进行完了前面的步骤了,那么你应该知道这是最后一步了.在这一步里面,你需要测试应用的吞吐量和为了更高的吞吐量而优化JVM.    这一步的输入就是应用的吞吐量性能要求.应用的吞吐量是在应用层面衡量而不是在JVM层面衡量,因此,应用必须要报告出一些吞吐量指标或者应用的某些操作的吞吐量性能指标.观察到的吞吐量指标然后用可以用来和应用需要的性能指标进行比较,如果达到或者超过要求,那么这一步就完成了.如果你需要更好的吞吐量的话,有一些JVM优化可以去做.      这一步的另外一个输入就是,有多…
本节的目标是做一些优化以满足对应用对延迟的需求.这次需要几个步骤,包括完善Java堆大小的配置,评估垃圾回收占用的时间和频率,也许还要尝试切换到不同的垃圾回收器,以及由于使用了不同的垃圾回收器,需要重新优化Java堆空间大小.       这一步有如下可能的结果:       1.应用的延迟需求被满足了.如果这一步的优化操作满足了应用的延迟需求,你可以继续下一步优化(优化吞吐量).       2.应用的延迟需求未被满足.如果这一步的优化操作未能满足延迟需求,你可能需要重新看看延迟需求是否合理或…
http://blog.csdn.net/zhoutao198712/article/details/7791969      本节的目标是做一些优化以满足对应用对延迟的需求.这次需要几个步骤,包括完善Java堆大小的配置,评估垃圾回收占用的时间和频率,也许还要尝试切换到不同的垃圾回收器,以及由于使用了不同的垃圾回收器,需要重新优化Java堆空间大小.       这一步有如下可能的结果:       1.应用的延迟需求被满足了.如果这一步的优化操作满足了应用的延迟需求,你可以继续下一步优化(优…
JVM JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器.它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序. java编译器只要面向JVM,生成JVM能理解的代码或字节码文件.Java源文件经编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行. 以下资料是我利用工作之余耗时将近一个月整理出来,是从百度.以及各大IT论坛上面搜集.整理 在这里我将这份资料分享出来,需要的可以[转发+转发+转发+…
https://blog.csdn.net/u013063153/article/details/73826403…
为什么需要优化GC? JAVA的GC是面试必考的题目,可是在实际项目中什么时候使用GC哪?或者应该什么时候优化GC哪?有句名言:“GC优化永远是最后一项任务”. 在使用GC之前,应该考虑一下进行GC的最根本原因:垃圾收集器需要清除在程序中创建的对象,GC执行的次数即需要被垃圾收集器清理的对象个数,与创建对象的数量成正比,因此,首先应该减少创建对象的数量,我们应该从小事做起,比如需要使用StringBuilder 或者StringBuffer 来替代String:应该尽量少的输出日志: 但是,我们…
VM 调优概述: 性能定义: 吞吐量 - 指不考虑 GC 引起的停顿时间或内存消耗,垃圾收集器能支撑应用达到的最高性能指标. 延迟 - 其度量标准是缩短由于垃圾啊收集引起的停顿时间或者完全消除因垃圾收集所引起的停顿,避免应用运行时发生抖动. 内存占用 - 垃圾收集器流畅运行所需要的内存数量. 调优原则 GC 优化的两个目标: 将进入老年代的对象数量降到最低 减少 Full GC 的执行时间 GC 优化的基本原则是:将不同的 GC 参数应用到两个及以上的服务器上然后比较它们的性能,然后将那些被证明…
原文转载自美团从实际案例聊聊Java应用的GC优化,感谢原作者的贡献 当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化.但GC算法复杂,影响GC性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了GC优化的难度. 即便如此,GC调优也不是无章可循,仍然有一些通用的思考方法.本篇会介绍这些通用的GC优化策略和相关实践案例,主要包括如下内容: 优化前准备: 简单回顾JVM相关知识.介绍GC优化的一些通用策略.优化…
到目前为止,还没有做明确的优化工作.只是做了初始化选择工作,比如说:JVM部署模型.JVM运行环境.收集哪些垃圾回收器的信息以及需要遵守垃圾回收原则.这一步将介绍如何评估应用需要的内存大小以及Java堆大小.首先需要判断出应用存活的数据的大小,存活数据的大小是决定配置应用需要的Java堆大小的重要条件,也能够决定是否需要重新审视一下应用的内存需求或者修改应用程序以满足内存需求.    注意:存活数据是指,应用处于稳定运行状态下,在Java堆里面长期存活的对象.换一句话说,就是应用在稳定运行的状态…