字节最新开源项目CompoundVM-在JDK8上启用JVM17

大家好,这里是小奏 ,觉得文章不错可以关注公众号小奏技术

背景

对于许多旧版 Java 应用程序(例如使用 Java 8),将应用程序升级到更高版本的 JDK 通常需要昂贵且耗时的项目迁移。

那么有没有一种方案在不升级JDK版本的情况下使用最新的JVM,获取到高版本JVM的性能提升呢?

答案就是字节最新开源的CompoundVM

CompoundVM

CompoundVM (CVM) 是一个旨在为较低版本JDK带来更高版本JVM性能的项目。

现在,您可以使用高级JVM功能运行应用程序,而升级项目的成本几乎为零。

支持版本及平台

目前CompoundVM版本为CVM-8+17,意味可在JDK 8 上启用JVM 17

目前支持的平台仅有Linux/x86_64,其他操作系统都暂不支持

CVM与上游 OpenJDK 项目采用相同的许可证开发。

特性与优势

更高版本的JVM 带来了垃圾收集、JIT 等的增强。

  • 生产就绪型低延迟 ZGC
  • 增强的 ParallelGC 和 G1GC,具有更高的吞吐量、更低的延迟和更少的内存占用
  • 增强的内部函数
  • 直接替代现有 JDK,易于升级和回滚

使用

目前提供的使用方式主要是基于源码的构建方式

shell 复制代码
git clone https://github.com/bytedance/CompoundVM.git

make -f cvm.mk cvm8default17

下载完源码并构建后我们输入

shell 复制代码
java -version

会输出如下信息

shell 复制代码
openjdk version "1.8.0_382"
OpenJDK Runtime Environment (build 1.8.0_382-cvm-b00)
OpenJDK 64-Bit Server VM (CompoundVM 8.0.0) (build 17.0.8+0, mixed mode)

这说明JVM 17 已在 JDK 8 中启用

测试方式

目前没在实际项目中测试过

但是感觉可以从几个方面来评估

  1. 使用CVM后的内存占用情况
  2. 使用CVM后进行压测看看吞吐是否有提升
  3. 使用CVM修改JVM垃圾收集器ZGC看看效果

总结

CompoundVM主要是针对老项目不容易升级JDK版本项目的性能提升

老项目想要高版本 JVM 性能可以尝试使用该项目

如果是有条件升级JDK版本的项目还是推荐升级JDK

毕竟目前来看只是做了性能上的优化,语法层面应该没有提升。

其次只支持JDK 17 目前最新JDK已经升级到21

相关推荐
程序员清风14 分钟前
阿里二面:Kafka 消费者消费消息慢(10 多分钟),会对 Kafka 有什么影响?
java·后端·面试
CodeSheep34 分钟前
宇树科技,改名了!
前端·后端·程序员
hstar952741 分钟前
三十五、面向对象底层逻辑-Spring MVC中AbstractXlsxStreamingView的设计
java·后端·spring·设计模式·架构·mvc
楽码44 分钟前
AI决策树:整理繁杂问题的简单方法
人工智能·后端·openai
星辰大海的精灵1 小时前
基于Dify+MCP实现通过微信发送天气信息给好友
人工智能·后端·python
import_random1 小时前
[深度学习]5大神经网络架构(介绍)
后端
pengyu1 小时前
【Java设计原则与模式之系统化精讲:壹】 | 编程世界的道与术(实战指导篇)
java·后端·设计模式
陈随易1 小时前
一行代码,将网页元素变成图片!比 html2canvas 快 93 倍的截图神器来了!
前端·后端·程序员
Kookoos1 小时前
性能剖析:在 ABP 框架中集成 MiniProfiler 实现性能可视化诊断
后端·c#·.net·abp vnext·miniprofiler
掉头发的王富贵1 小时前
Arthas神器入门:动态调试Java应用,轻松搞定生产环境Bug!
java·后端·debug