尝试使用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,看看是否能感受得到?(随便)