Java JIT编译器-编译器选择选项
在64位linux上,使用java8,当运行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。你可能会看到
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。酷,这让事情变得更容易。酷,这让事情变得更容易。