修饰JVM堆速度很慢

时间:2019-04-02 21:54:39

标签: java jvm jvm-arguments jvm-hotspot

启用-XX:+AlwaysPreTouch并启用大堆时,我的简单hello world程序需要花费10分钟以上的时间启动:

$ time java -Xmx1000G -Xms1000G -XX:+AlwaysPreTouch Test
Hello World!

real    10m9.330s
user    1m9.932s
sys 9m8.128s

这是意外的,因为pretouch是parallelized in Java 9,并且我正在使用Java11。我仍然看到pretouch仅使用一个线程。

为什么堆预修饰是串行而不是并行运行的?我是否需要配置其他选项以启用并行预润?我正在使用具有2 TB内存的80核心服务器。

Java版本:

$ java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment (build 11.0.2+9-Debian-3bpo91)
OpenJDK 64-Bit Server VM (build 11.0.2+9-Debian-3bpo91, mixed mode, sharing)

Java代码:

public class Test {
    public static void main(String [] args) {
        System.out.println("Hello World!");
    }
}

0 个答案:

没有答案