在这篇文章中指出:
JDK 包括两种类型的 VM——客户端产品和针对服务器应用程序调整的 VM。这两个解决方案共享 Java HotSpot 运行时环境代码库,但使用适合客户端和服务器明显独特的性能特征的不同编译器。这些差异包括编译内联策略和堆默认值。
JDK 在发行版中包含这两个系统,因此开发人员可以通过指定 -client 或 -server 来选择他们想要的系统。
尽管服务器虚拟机和客户端虚拟机相似,但服务器虚拟机已经过专门调整,以最大限度地提高峰值运行速度。它旨在执行长时间运行的服务器应用程序,这些应用程序需要尽可能快的运行速度,而不是快速启动时间或更小的运行时内存占用。
客户端 VM 编译器用作经典 VM 和早期版本 JDK 使用的即时 (JIT) 编译器的升级。客户端 VM 为应用程序和小程序提供了改进的运行时性能。Java HotSpot 客户端 VM 经过专门调整,可减少应用程序启动时间和内存占用,使其特别适合客户端环境。一般来说,客户端系统更适合 GUI。
这是否意味着如果要运行带有-server
标志的应用程序,必须以某种模式编译才能使其正常工作?