【发布时间】:2011-11-07 10:22:33
【问题描述】:
可能重复:
Real differences between "java -server" and "java -client"?
使用 -server 和 -client 标志启动 java 程序有什么技术区别?
谢谢!
【问题讨论】:
标签: java
可能重复:
Real differences between "java -server" and "java -client"?
使用 -server 和 -client 标志启动 java 程序有什么技术区别?
谢谢!
【问题讨论】:
标签: java
来自Frequently Asked Questions About the Java HotSpot VM:
这两个系统是不同的二进制文件。它们本质上是两个 不同的编译器 (JIT) 连接到相同的运行时系统。这 客户端系统最适合需要快速启动的应用程序 次或小足迹,服务器系统是最佳的 整体性能最重要的应用。在 一般客户端系统更适合交互式 GUI 等应用程序。其他一些差异包括 编译策略、堆默认值和内联策略。
【讨论】:
我知道的一个区别与JIT (Just In Time) 编译有关,其中 runtime 的 JVM 识别代码中的热点,并据此将字节码转换为高度优化的本机代码。
使用-client 标志,执行的JIT'ing 数量少于使用-server 标志执行的量。这是因为客户端是交互式应用程序,通常需要较短的启动时间,而 JIT 会导致一些启动延迟。您可以在此处阅读有关 JIT 的更多信息:http://en.wikipedia.org/wiki/Just-in-time_compilation
另外,我认为(不太确定)随着这些标志的更改而选择的垃圾收集默认值会有所不同。
【讨论】: