字节最新开源项目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

相关推荐
程序员三明治15 小时前
【AI】Prompt 工程入门:从五要素框架到 RAG 生产级 Prompt 模板与 Java 实战
java·人工智能·后端·大模型·llm·prompt·agent
雨辰AI16 小时前
SpringBoot3 + 人大金仓 V9 全栈日志实战:Logback + Loki + Filebeat 构建统一日志平台
java·数据库·后端·云原生·eureka·logback·政务
石小石Orz16 小时前
OpenAI官方:harness-engineering(工程技术:在智能体优先的世界中利用 Codex)
前端·后端
SamDeepThinking16 小时前
打造高效团队的四个关键动作
java·后端·团队管理
fliter16 小时前
WAF 机器学习推理从 1519μs 压到 275μs,Cloudflare 是怎么做到的
后端
Moment16 小时前
2026年,为什么NestJS + Monorepo越来越流行了 ❓❓❓
前端·后端·面试
IT果果日记16 小时前
人大金仓使用Flink-CDC
大数据·数据库·后端
Gopher_HBo16 小时前
阻塞队列之SynchronousQueue
后端
understandme16 小时前
30 毫秒教会你怎么在 TKE 搭建 Istio
后端
神奇小汤圆16 小时前
Spring Boot:别再重复造轮子,这些内置功能香麻了
后端