Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JIT编译器-编译器选择选项_Java_Jvm_Jit - Fatal编程技术网

Java JIT编译器-编译器选择选项

Java JIT编译器-编译器选择选项,java,jvm,jit,Java,Jvm,Jit,在64位linux上,使用java8,当运行java命令时,似乎所有3个选项-client/-server/-d64都在使用64位服务器编译器 问题是:(适用于带java8的64位linux) 既然-client和-server使用相同的编译器,那么指定这两个选项中的一个会有什么区别吗 对于长时间运行的java守护程序,在启动时可以稍微慢一点,但最好将-server与-XX:+tieredcomilation一起使用还是不使用它 查看文件jre/lib/amd64/jvm.cfg。你可能会看到

在64位linux上,使用java8,当运行
java
命令时,似乎所有3个选项
-client
/
-server
/
-d64
都在使用64位服务器编译器

问题是:(适用于带java8的64位linux)

  • 既然
    -client
    -server
    使用相同的编译器,那么指定这两个选项中的一个会有什么区别吗
  • 对于长时间运行的java守护程序,在启动时可以稍微慢一点,但最好将
    -server
    -XX:+tieredcomilation
    一起使用还是不使用它

查看文件
jre/lib/amd64/jvm.cfg
。你可能会看到台词

-server KNOWN
-client IGNORE
这意味着将忽略
-client
选项<代码>-服务器也不做任何事情,因为JDK 8 for x64只有一个JVM,其中包含C1和C2编译器,并且默认情况下,分层编译处于启用状态

带-XX:+tieredcomployment或不带它


没有关系,因为默认情况下此选项处于启用状态。对于客户机级和服务器级应用程序,该方法都可以很好地工作。通常不需要手动关闭它。

查看文件
jre/lib/amd64/jvm.cfg
。你可能会看到台词

-server KNOWN
-client IGNORE
这意味着将忽略
-client
选项<代码>-服务器也不做任何事情,因为JDK 8 for x64只有一个JVM,其中包含C1和C2编译器,并且默认情况下,分层编译处于启用状态

带-XX:+tieredcomployment或不带它


没有关系,因为默认情况下此选项处于启用状态。对于客户机级和服务器级应用程序,该方法都可以很好地工作。通常不需要手动将其关闭。

您搞错了
-client
-server
选择不同的JVM。@EJP我认为这两个选项选择了不同的JIT编译器,将字节码编译成运行时的机器码,从而导致两种不同行为的java进程。因为jvm只是一个java进程,所以你可以说他们选择了不同的jvm,你错了
-client
-server
选择不同的JVM。@EJP我认为这两个选项选择了不同的JIT编译器,将字节码编译成运行时的机器码,从而导致两种不同行为的java进程。因为jvm只是一个java进程,所以,你可以说他们选择了不同的jvm。酷,这让事情变得更容易。酷,这让事情变得更容易。