java server和client的不同

走着路睡觉
  • java
大约 2 分钟

JDK 包括两种类型的VM—— client和针对服务器应用程序调整的server VM。这两个解决方案共享 Java HotSpot 运行时环境代码库,但使用适合client和server明显独特的性能特征的不同编译器。这些差异包括编译内联策略和堆默认值。

尽管client和server虚拟机相似,但server虚拟机已经过专门调整,以最大限度地提高峰值运行速度。它旨在执行长时间运行的服务器应用程序,这些应用程序需要尽可能快的运行速度,而不是快速启动时间或更小的运行时内存占用。

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

client VM编译器不会尝试执行服务器VM中编译器执行的许多更复杂的优化,但作为交换,它需要更少的时间来分析和编译一段代码。这意味着客户端虚拟机可以更快地启动,并且需要更小的内存占用。

Server VM包含一个高级自适应编译器,它支持许多通过优化C++编译器执行的相同类型的优化,以及一些传统编译器无法完成的优化,例如跨虚拟方法调用的主动内联。这是相对于静态编译器的竞争优势和性能优势。自适应优化技术在方法上非常灵活,通常优于高级静态分析和编译技术。

总结如下:java -server 会增加启动时间,但运行更快;java -client 服务启动快,运行相对慢

上次编辑于:
贡献者: zhaojingbo
Loading...