每日速递:Java:开源Java编译器的下一个前沿——实时编译即服务

对于Java开发人员来说,实时(JIT)编译器是提高性能的关键。然而,在容器世界中,由于CPU和内存消耗的限制,性能的提高经常被抵消。为了帮助解决这个问题,Eclipse OpenJ9 JVM提供了JITServer技术,它将JIT编译器从应用程序中分离出来。


【资料图】

JITServer的性能特征使它成为云的理想解决方案。它允许用户使用更小的容器来实现更高的应用密度,从而为最终用户和/或云提供商节省成本。因为消除了JIT编译导致的CPU和内存激增,所以用户可以更轻松地为他/她的应用程序提供资源。其他优势包括:加速时间、更好地控制编译资源、增加可靠性(JIT编译器错误不再使应用程序崩溃)以及在许多应用程序实例中分摊编译成本。

总而言之,在以下情况下,JITServer是一个很好的解决方案:

JVM需要在相对较短的时间内编译许多方法

JVM运行在一个CPU/内存受限的环境中,这个环境最不允许与其本地JIT编译器共享资源

JITServer和客户端虚拟机之间的网络延迟相对较低(< 1毫秒)

在java培训中,有理论知识+实践项目课程,双管齐下,学以致用,让你深入浅出地学习java。

部署JITServer时,请遵循以下建议以最大限度地提高性能:

将10-20个客户端JVM连接到一个JITServer实例

将JITServer配置为至少使用1-2 GB的RAM运行

如果使用Kubernetes,将JITServer的vCPU“限制”设置为比“请求”大得多,以考虑到CPU使用高峰,并使用“sessionAffinity”来确保JVM客户机总是连接到同一个JITServer

错开客户机JVM的启动,以便它们的编译阶段不会全部重叠

尽可能避免加密,因为这会增加通信开销

启用JITServer AOT缓存,以便可以存储编译供共享使用

关键词:

推荐DIY文章
主机存在磨损或划痕风险 PICO4便携包宣布召回
穿越湖海!特斯拉Cybertruck电动皮卡可以当“船”用
vivoXFold+折叠旗舰开售 配备蔡司全焦段旗舰四摄
飞凡R7正式上市 全系标配换电架构
中兴Axon30S开售 拥有黑色蓝色两款配色
荣耀MagicBookV14 2022正式开售 搭载TOF传感器
it