【问题标题】:What's the effect of -server option for the HotSpot JVM?HotSpot JVM 的 -server 选项有什么作用?
【发布时间】:2009-09-22 11:38:39
【问题描述】:

我找不到任何关于在启动 sun HotSpot JVM 时传递 -server 选项的确切效果的明确文档。

谁能总结一下它的作用?

【问题讨论】:

    标签: java sun jvm-hotspot


    【解决方案1】:

    使用 -server,JVM 将更积极地编译热点(即经常执行的部分代码),因此编译器将花费更多时间来编译。这不是问题,因为您仅在进程运行较长时间(例如在服务器上)时才使用此选项。

    使用 -client 时,完成的优化更轻松、更快捷,因为您不希望在运行客户端应用程序时编译器启动时出现长时间的停顿。

    【讨论】:

    • 你并没有真正得到暂停,因为编译器在不同的线程中运行。在开始编译代码和代码可用之间存在延迟。服务器 HotSpot 还默认在编译之前等待更长时间(因为编译需要更长的时间并使用更多的内存)。
    【解决方案2】:

    我似乎记得读过它预先做了更多的工作,以便长时间运行的程序性能更好,但代价是启动速度较慢。

    另见:What's the difference between the -client and -server systems?

    【讨论】:

      【解决方案3】:

      在某些平台上,默认设置 -server 标志。

      即如果它的 Linux/Solaris 具有超过 2GB 的内存和超过 2 个处理器。如您所知 - 这些要求是很久以前定义的。我现在有比这更好的笔记本电脑...!

      我猜他们从未在 Windows 上将其设置为默认值,因为他们认为 Windows 只会运行客户端 java 而 *nix 会运行服务器 java。

      直到最近,我们在 Windows Server 上运行了我们长期运行的服务器进程,并且改变标志产生了明显的不同。

      【讨论】:

        猜你喜欢
        • 2013-02-21
        • 1970-01-01
        • 1970-01-01
        • 2016-11-09
        • 1970-01-01
        • 2012-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多