Java/JVM(HotSpot):有没有办法在编译时保存JIT性能增益?

Rud*_*ger 11 java performance jit jvm compilation

当我测量Java应用程序的吞吐量时,我发现随着时间的推移,性能提高了50%:

  • 对于前100K消息,我每秒收到大约3,000条消息
  • 对于第二个100K消息,我每秒收到约4,500条消息.

我相信随着JIT优化执行路径,性能会提高.

保存JIT编译的原因是"JVM执行的优化不是静态的,而是动态的,基于数据模式和代码模式.这些数据模式可能会在应用程序的生命周期中发生变化,渲染缓存的优化不是最佳的."

但是,我知道这些数据模式在我的应用程序生命周期内,甚至在多个应用程序生命周期内都不会发生变化.那么如何在HotSpot JVM中"保存"这些性能提升呢?

另见相关问题讨论.

loc*_*cka 6

您可以尝试调整您的应用程序以使用Nailgun运行它.每次在Nailgun服务器(一个长期存在的JVM)上调用它时,都不会针对新的JVM调用您的应用程序.第二次调用你的应用程序时,nailgun JVM将优化你的类中的路径,因此应该比新的更快地执行.