background

Need to investigate the use of domestic CPU, what kind of JDK need

Take domestic CPU Feiteng and Loongson for example, Feiteng is ARM architecture, and Loongson is MIPIS architecture, the default is JDK8

The following JDK is based on the openJDK to add some features or optimized JVM features, after testing and production practice, so more reliable than openJDK

ARMv8 fit

Ali Dragonwell

Liverpoolfc.tv: dragonwell – JDK. IO /

Code: github.com/alibaba/dra…

Usage Guide :github.com/alibaba/dra…

Features:

  • JWarmup: Records hot methods and class compilation order based on the previous run of the application, and actively loads relevant classes and compiles relevant methods when the application is launched next time, so that the compiled Java code can be run directly after the application is launched.
  • JFR: Java Flight Recorder (JFR) is a tool for collecting diagnostic and performance data for Java applications. It has been integrated into Alibaba Dragonwell. With the default configuration, the additional overhead of JFR is less than 2%, so it can be used in a production environment.
  • G1ElasticHeap: Supports dynamic heap physical memory return in G1 and reduces memory footprint for Java processes.
  • Wisp: Wisp provides a user-mode thread implementation on the JVM. With Wisp2 enabled, Java threads are no longer mapped to kerl-level threads, but to a single coroutine. The JVM schedules a large number of coroutine executions on a small number of kernel lines to reduce the scheduling overhead of the kernel and improve the performance of the Web server.

Linux/AArch64, available for production

Developer.aliyun.com/article/781…

Huawei Dishengjdk

Code: gitee.com/openeuler/b…

Gitee.com/openeuler/b…

Instructions: gitee.com/openeuler/b…

Features:

1. Bisheng JDK 8 support AppCDS, can greatly shorten the application startup speed and multi-process memory occupation, for short life cycle, large memory occupation of the application, as well as container application has a good optimization effect.

2. Bison JDK 11 supports experimental ZGC on ARM architecture, supports a maximum latency of 10ms, and carries out stability enhancement. Developers can also enjoy the advantages of low-latency GC algorithm on ARM architecture.

3. The BISON JDK 8 & 11 also supports fast serialization technology, which provides greater serialization capability than Java native serialization for some scenarios, with performance improvements of up to 20% in some scenarios.

Linux/AArch64 is available for production

Reference reading:

www.infoq.cn/article/1pq…

www.hikunpeng.com/developer/d…

List of supported oss

Operating System Name version Name of the OS image file
CentOS 7.6 CentOS-7-aarch64-Everything-1810.iso
Ubuntu 18.04 Ubuntu – 18.04.5 – live – server – amd64. Iso
Ubuntu 20.04 LTS Ubuntu – 20.04.2 – live – server – amd64. Iso
openEuler 21.03 OpenEuler – 21.03 – aarch64 – DVD. Iso
openEuler 20.03 LTS SP1 OpenEuler – 20.03 – LTS – SP1 – aarch64 – DVD. Iso
UOS V20 uos-20-SP1-server-arm64.iso
kirin V10 Kylin-Server-10-SP1-Release-Build04-20200711-arm64.iso

Tencent KonaJDK

Github.com/Tencent/Ten…

Support: x86-64 linux-AARCH64

  • Vector computation (Vector API). In view of the optimization requirements of “computing power” in big data and machine learning scenarios, JVM applications can make full use of SIMD capabilities, transplant and improve Vector API technology in the cutting-edge version of the community, solve production obstacles such as avX512 Vector reliability, and develop in-depth optimization such as Vector shift register allocation. And a lot of upstream has been optimized to the OpenJDK main branch.
  • ZGC out of the box. As one of the Java ecology’s eagerly awaited “no pause” GC algorithms, ZGC promises to provide millisecond pauses in most cases, greatly increasing the productivity of Java online service scenarios, but somewhat slowing down JDK 11 adoption due to its lack of reliability and functionality. The Kona JDK addresses the shortcomings of the community JDK 11, freeing Java developers from the burden of choosing between LTS and non-LTS versions.
  • Super large heap and memory cost optimization strategies. The Kona JDK 11 incorporates production-level optimizations for GC, SVC tools, and more in the face of demanding production environments ranging from lightweight microservices to multiple super TERabytes of stacks
  • Tencent ranks fifth in global enterprise contribution, and is the company that contributes the most to OpenJDK in China, and it is the first time for a Chinese manufacturer to enter into the contributor range of OpenJDK in history

Linux/AArch64 is available for production

Download: github.com/Tencent/Ten…

Instructions: github.com/Tencent/Ten…

Other references:

Mp.weixin.qq.com/s/8xRLM0DDw… Add fire to Arm ecology, Tencent Kona JDK Arm architecture optimization practice

www.infoq.cn/article/lny… KonaJDK enables a new Java ecosystem on the cloud

Mp.weixin.qq.com/s/LGNs9Ljp5… KonaJDK 8 new version update, state secret algorithm easy to use

Blog.csdn.net/Tencent_Big… Tencent Kona JDK11 Non-pause MEMORY management ZGC production practice

AdoptOpenJDK

Download address:Adoptium.net/releases.ht…

LoongArch64 / MIPS64 godson

Download the JDK and directions for use: www.loongnix.cn/index.php/J…

Loongson software ecology series – talk about Loongson Java open source

www.loongnix.cn/index.php/%… Loongson related projects

www.loongnix.cn/index.php/%… Loongson Open Source community

Zhuanlan.zhihu.com/p/165350806 migration and domestic CPU thinking on the godson project

conclusion

  1. All of the above JDK support AARCH64
  2. All have production practices
  3. In addition to loongson related JDK have large factory support