# CompoundVM **Repository Path**: ByteDance/CompoundVM ## Basic Information - **Project Name**: CompoundVM - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: jdk17u-target8 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-11 - **Last Updated**: 2025-12-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
# CompoundVM ![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/bytedance/CompoundVM/.github/workflows/main.yml?branch=jdk17u-target8) [![License](https://img.shields.io/github/license/bytedance/CompoundVM)](https://github.com/bytedance/CompoundVM/blob/main/LICENSE) [![GitHub downloads](https://img.shields.io/github/downloads/bytedance/CompoundVM/total)](https://github.com/bytedance/CompoundVM/releases) [中文版](README_cn.md)
## Introduction For many legacy Java applications (e.g. using Java 8), upgrading the application to higher version of JDK often requires costly and time-consuming project migration. CompoundVM (CVM) is a project that aims to bring higher version JVM performance to lower version JDK. Now you can run your application with advanced JVM features with almost zero cost to upgrade your project. The current release enables JVM 17 on JDK 8. We aim to keep up with the latest JVM. JVM 25 on JDK 8 is now under development. CVM has been used by a number of services in production environment. The current release supports x86_64/aarch64 on linux platforms. CVM is developed under the same licence as the upstream OpenJDK project. ## Features and Benefits Higher version of JVM brings enhancements in garbage colleciton, JIT, etc. + Enhanced ParallelGC and G1GC, next generation ZGC, with higher throughput, lower latency, and less memory footprints + Enhanced JIT compiler, support more intrinsics with faster implementation + Drop-in replacement for existing JDK, easy to upgrade and rollback ## Performance Results CVM has been throughly tested on various application scenarios, including Java Microbenchmark Harness (JMH), SPECjbb2015, Flink nexmark, etc. Compared to jdk8u372, some of the performance results are as follows:
Application Performance Improvement
x86_64 aarch64
JMH java.util all cases average 30% 44%
JMH java.util.stream all cases average 45% 56%
SPECjbb2015 critical-jOPS 90% 35%
SPECjbb2015 max-jOPS 5% 1%
Flink nexmark all queries average 10% -
## Using CVM ### Option 1: Download and install You may download a pre-built CVM from its [release](https://github.com/bytedance/CompoundVM/releases) page, and uncompress the package to your destination directory. ### Option 2: Build from source Recommended GCC version: 8.x, 9.x. Run the following command: `make -f cvm.mk cvm8default17` For more options run `make -f cvm.mk help` After CVM is installed, command `${CVM_DIR}/bin/java -version` will show the following output: ``` 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) ``` Notice the VM version, JVM 17 has been enabled in a JDK 8! ## Contributing to CVM See [CONTRIBUTING.md](CONTRIBUTING.md) ## Contact Us Scan QR code to join discussion group ![qr](cvm/conf/wechat-group.png)