谈谈实战中的JVM优化(一:总篇)

84 阅读2分钟

JVM是什么?

  1. 是一个应用程序,系统内部有完整的对接规范,从而完成一次编译,到处运行。
  2. 有自身的内存分配与管理机制,最重要的是会自动清理不再使用的内存数据,屏蔽了开发对内存的申请与回收。
  3. 有完善的性能监控、外挂插桩、SPI扩展机制、JNI等丰富内容,多方位供开发者能设计满足自身的需要。

优化什么?

其实就是优化这个JVM应用程序的运行,让他能够在对应硬件设备上,实现最高的效应。(本文不讨论操作系统层面和硬件层面的优化,也不讨论程序设计的优化),JVM自身提供了很多可供我们运行时期优化的参数,那主要包含,也是我们比较关注的是以下几类:

编译层面优化:

谈谈实战中的JVM优化(二:编译优化)

内存使用优化:

  1. 内存管理,合理分配内存。
  2. 选择合理的垃圾回收器,快速回收内存,供程序使用。

充分利用硬件条件及自身使用需要

1:设置合理的调优参数

怎么优化?

将在后续文章更新(主要针对于编译,垃圾回收器选择,合理的参数配置等)。

再不行,换个JVM实现,试试(谨慎,需做充分调研,最主要是社区活跃度高)。

  1. BEA Systenm的JRockit
  2. IBM的OpenJ9。

将在后续文章持续更新。

优化的怎么样?

  • 写程序做测试。
  • 使用测试工具进行测试。
  • 搭建监控程序,实时监控程序运行性能指标。

总结

本文主要总结归纳在JVM优化中,可以去探索的思路。