第4章 openJ9的性能提升:进程启动时间的优化

2018-04-29  本文已影响0人  narry

openj9性能提升方面

  openj9的性能关注点主要有以下几点:

- start-up time :进程启动时间

- footprint  :进程内存占用

- ramp-up  :达到最佳性能的速度的优化

- response time :响应时间

- CPU :CPU占用

进程启动时间的优化

  启动时间就是程序从启动到可以对外提供服务的时间的消耗,这个指标对开发,测试和运维都有很大的意义,启动时间一般来说消耗在两个方面:类的加载和字节码的解释执行上,而openJ9在这个方面引入了如下的三个技术:

- Shared Class Cache

- AOT(Ahead-of-time JIT)

- -Xquickstart启动模式

  Shared Class Cache 采用的方式是将被的jvm已经处理过了的类,AOT产生被编译过的代码和Interpreter的profile数据保存在操作系统文件中,然后通过Memory mapped file的方式被别的后面启动的jvm所共享,这样可以减少后续jvm进程的启动时间,在jvm启动参数中加入 –Xshareclasses ,此功能就会被启用

  JVM通常在程序执行时,会通过JIT将Java方法编译为本机代码,每次程序运行时都会生成本机代码,而Ahead of Time编译技术在编译Java方法,创建本地代码时产生的代码不仅可用于当前JVM,还可存储到共享类缓存中,使用共享类缓存启动的另一个JVM可以使用存储在缓存中的AOT代码来减少启动时间,该共享类缓存在以前的Java程序调用期间填充了AOT代码。通过节省编译所需的时间和通过将方法更快地执行为AOT代码来实现这种减少。 AOT代码是本地代码,通常执行速度比解释代码快,而此功能必须在启动了Shared Class Cache 后才能生效

  而- -Xquickstart启动模式相当于Hotspot的client模式,在JIT方面的优化将不是特别的充分和理想,适合于特别关注启动时间,短生命周期和人机交互类的程序使用

上一篇下一篇

猜你喜欢

热点阅读