WEB开发网
开发学院软件开发Java 从虚拟机视角谈 Java 应用性能优化 阅读

从虚拟机视角谈 Java 应用性能优化

 2010-07-15 00:00:00 来源:WEB开发网   
核心提示: 了解了垃圾收集以及它对性能的影响后,我们可以根据应用程序的特点来设置 GC 的策略进行有效的优化,从虚拟机视角谈 Java 应用性能优化(7),相关参数是 -Xgcpolicy:[optthruput | optavgpause | gencon | subpool] -Xgcpolicy:op

了解了垃圾收集以及它对性能的影响后,我们可以根据应用程序的特点来设置 GC 的策略进行有效的优化。相关参数是 -Xgcpolicy:[optthruput | optavgpause | gencon | subpool]

-Xgcpolicy:optthruput,针对吞吐量优化,这是虚拟机默认的 GC 策略,适用于两种极端情况:应用需要尽可能快的在短时间内运行结束,或应用长时间运行,且运行过程中的吞吐量没有比较固定的大小和分布;

-Xgcpolicy:optavgpause,针对 GC 导致的停顿优化,通过并发地执行一部分垃圾收集,在高吞吐量和短 GC 停顿之间进行折中。应用程序停顿的时间更短。适用于应用具有比较规则和突发的吞吐量周期分布;

-Xgcpolicy:gencon,分代并发进行 GC,以不同方式处理短期存活的对象和长期存活的对象。采用这种策略时,具有许多短期存活对象的应用程序会表现出更短的停顿时间,同时仍然产生很好的吞吐量;

-Xgcpolicy:subpool,子池优化,采用与默认策略相似的算法,但是采用一种比较适合多处理器计算机的分配策略。适用于在多核环境下运行的具有较高对象创建速率的多线程应用。

除了设置 GC 策略,最常设置的堆大小参数有:-Xms,设置堆的初始大小;-Xmx,设置堆空间的最大值;-Xmn,设置年轻代空间大小;-Xmo,设置年老代空间大小。程序员需要根据实际的机器环境和应用本身的特点来设置合理的值。

容易忽视的设计、编程原则和习惯

对虚拟机工作机制的了解能够使我们有把握写出更优雅、更高效的 Java 代码。下面是几条值得参考的设计、编程原则和习惯。

及时更新虚拟机。

除了由于某些产品兼容性的需要必须使用过去某个虚拟机版本外,建议将开发环境和最终产品部署的虚拟机运行时环境要求更新至最新版本。最新的版本意味着最新的 API,更好的实现优化。这一点对嵌入式 Java(Java ME 和 Java Card)并不适用,随着移动或智能设备的发行,虚拟机就已经固化在其中,而新发布的虚拟机版本不能像在 EE 和 SE 安装的服务器和 PC 机一样,轻松进行安装。部分移动设备可以通过更新固件和操作系统程序来实现 VM 的版本更新。

上一页  2 3 4 5 6 7 8 9  下一页

Tags:虚拟 视角 Java

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接