【问题标题】:What is the difference between the Java Client VM and the Server VM? [duplicate]Java Client VM 和 Server VM 有什么区别? [复制]
【发布时间】:2011-11-07 10:22:33
【问题描述】:

可能重复:
Real differences between "java -server" and "java -client"?

使用 -server 和 -client 标志启动 java 程序有什么技术区别?

谢谢!

【问题讨论】:

    标签: java


    【解决方案1】:

    来自Frequently Asked Questions About the Java HotSpot VM

    这两个系统是不同的二进制文件。它们本质上是两个 不同的编译器 (JIT) 连接到相同的运行时系统。这 客户端系统最适合需要快速启动的应用程序 次或小足迹,服务器系统是最佳的 整体性能最重要的应用。在 一般客户端系统更适合交互式 GUI 等应用程序。其他一些差异包括 编译策略、堆默认值和内联策略。

    【讨论】:

      【解决方案2】:

      我知道的一个区别与JIT (Just In Time) 编译有关,其中 runtime 的 JVM 识别代码中的热点,并据此将字节码转换为高度优化的本机代码。

      使用-client 标志,执行的JIT'ing 数量少于使用-server 标志执行的量。这是因为客户端是交互式应用程序,通常需要较短的启动时间,而 JIT 会导致一些启动延迟。您可以在此处阅读有关 JIT 的更多信息:http://en.wikipedia.org/wiki/Just-in-time_compilation

      另外,我认为(不太确定)随着这些标志的更改而选择的垃圾收集默认值会有所不同。

      【讨论】:

        猜你喜欢
        • 2015-05-19
        • 2016-08-08
        • 2011-10-18
        • 2015-01-10
        • 1970-01-01
        • 1970-01-01
        • 2018-12-16
        • 1970-01-01
        • 2012-02-08
        相关资源
        最近更新 更多