在64位linux上,使用java8,运行java
命令时,似乎所有3个选项-client
/-server
/-d64
都使用了64位服务器编译器。JIT编译器 - 编译器选择选项
的问题是:(64位的Linux与java8)
- 由于
-client
和-server
使用相同的编译器,它不会使任何差异,以指定的2个选项吗? - 对于一个长时间运行的java守护程序,最好是使用
-server
连同-XX:+TieredCompilation
或者没有它,当在启动期间可以稍微慢一点。
在64位linux上,使用java8,运行java
命令时,似乎所有3个选项-client
/-server
/-d64
都使用了64位服务器编译器。JIT编译器 - 编译器选择选项
的问题是:(64位的Linux与java8)
-client
和-server
使用相同的编译器,它不会使任何差异,以指定的2个选项吗?-server
连同-XX:+TieredCompilation
或者没有它,当在启动期间可以稍微慢一点。看文件jre/lib/amd64/jvm.cfg
。您可能会看到行
-server KNOWN
-client IGNORE
这意味着-client
选项被忽略。 -server
也不做任何事情,因为JDK 8 for x64只有一个包含C1和C2编译器的JVM,默认情况下分层编译处于打开状态。
与-XX:+ TieredCompilation或没有它
没关系,因为这个选项默认是开启的。 advanced compilation policy适用于客户级和服务器级应用程序。通常不需要手动关闭它。
酷,让事情变得更容易。 –
你错了。 '-client'和'-server'选择不同的JVM。 – EJP
@EJP我认为这两个选项选择不同的JIT编译器,它将字节码编译为机器代码,这是在运行时间,从而导致2种类型的java进程具有不同的行为。由于jvm只是一个java进程,所以,你可以说他们选择了不同的jvms。 –