尝试使用OpenJ9

因為有一個叫做OpenJ9的東西和Java 9同時發布,所以我有點擔心。網站上有以下的內容。

提升您的Java应用性能

低内存占用。快速启动时间。高应用吞吐量。
针对以最低成本在云上运行Java应用进行优化。
想要一个包含企业级、开源的Java虚拟机的OpenJDK版本吗?
获取预先构建的二进制文件,亲自尝试一下吧…

具体而言,我們會關注它是否處理速度快?比JVM啟動速度快嗎?還是記憶體使用量少呢?不過,首先我們先從處理速度方面來看。

免责

仕事の息抜きにスーパー雑にやっただけなので、ちゃんとした詳細なベンチは他の方のを御覧ください。

环境

    • Vagrant 1.9.1

 

    • 使用Box: ubuntu/xenial64

3つの仮想環境にそれぞれ JDK8 / JDK9 / JDK9+OpenJ9 をインストール

代码

import java.math.*;

public class test {
    final static int LOOP_COUNT = 1_000_000_000;
    public static void main(String[] args) {
        BigInteger bi = BigInteger.ZERO;
        for(int i = 0; i < LOOP_COUNT; i++) {
            BigInteger _bi = BigInteger.valueOf(i);
            bi = bi.add(_bi);
        }
        System.out.println(bi);
    }
}

一个糟糕的代码,只是进行了10亿次循环并相加。

計測方法

javac test.java
time java test

不精确的测量。

成果。

JDK8

$ time java test
499999999500000000

real    0m31.215s
user    0m22.668s
sys 0m7.332s

JDK9 is JDK9

$ time java test
499999999500000000

real    0m24.734s
user    0m18.532s
sys 0m4.936s

JDK9和OpenJ9

$ time java test
499999999500000000

real    0m54.416s
user    0m48.192s
sys 0m4.500s

我突然有种,“咦,我是不是弄错了什么…”的感觉。

也许可以试一试将内存使用量用于 Minecraft 的 JVM,看看是否能感受得到?(随便)

广告
将在 10 秒后关闭
bannerAds