Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.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-服务器标记和编译_Java_Compilation - Fatal编程技术网

Java-服务器标记和编译

Java-服务器标记和编译,java,compilation,Java,Compilation,其中指出: JDK包括两种VM——客户端产品和为服务器应用程序调优的VM。这两个解决方案共享Java HotSpot运行时环境代码库,但使用不同的编译器,以适应客户机和服务器独特的性能特征。这些差异包括编译内联策略和堆默认值 JDK在发行版中包含这两个系统,所以开发人员可以通过指定-client或-server来选择他们想要的系统 尽管服务器和客户机虚拟机相似,但服务器虚拟机经过了专门调整,以最大限度地提高峰值运行速度。它用于执行长时间运行的服务器应用程序,这些应用程序比快速启动时间或更小的运行

其中指出:

JDK包括两种VM——客户端产品和为服务器应用程序调优的VM。这两个解决方案共享Java HotSpot运行时环境代码库,但使用不同的编译器,以适应客户机和服务器独特的性能特征。这些差异包括编译内联策略和堆默认值

JDK在发行版中包含这两个系统,所以开发人员可以通过指定-client或-server来选择他们想要的系统

尽管服务器和客户机虚拟机相似,但服务器虚拟机经过了专门调整,以最大限度地提高峰值运行速度。它用于执行长时间运行的服务器应用程序,这些应用程序比快速启动时间或更小的运行时内存占用更需要最快的运行速度

客户机VM编译器作为JDK早期版本使用的经典VM和实时(JIT)编译器的升级。客户端VM为应用程序和小程序提供了改进的运行时性能。JavaHotSpot客户机VM经过了专门调整,以减少应用程序启动时间和内存占用,使其特别适合于客户机环境。一般来说,客户机系统更适合GUI


这是否意味着如果要使用
-server
标志运行应用程序,必须使用特定模式进行编译才能使其正常工作?

否,这是一个运行时设置。应用程序的字节码是相同的。启动JVM时使用此标志


混淆可能来自“编译”也发生在运行时这一事实,因为JVM会将Java字节码JIT(即时)编译为本机代码(这一点受此标志的影响)。

需要注意的是,Java是“编译一次,到处运行”的

这意味着你不需要担心

  • 它将在客户端还是服务器上运行
  • 它是32位还是64位
  • 使用32位还是64位引用
  • 使用什么CPU
  • 使用什么操作系统
  • 使用了哪些属性,即没有宏
  • 调试日志记录已打开
  • 使用了多少内存
  • 使用了什么代码插装
  • 您正在运行哪个版本的java(提供更高版本)
这些都是在运行时确定的,而不是在编译时确定的