Java 什么';HotSpot JVM的-server选项的效果如何?

Java 什么';HotSpot JVM的-server选项的效果如何?,java,sun,jvm-hotspot,Java,Sun,Jvm Hotspot,我找不到任何关于启动sun HotSpot JVM时传递-server选项的确切效果的清晰文档 有人能总结一下它的功能吗?我似乎记得读过这样一篇文章:它在前面做了更多的工作,这样长时间运行的程序性能更好,但启动速度较慢 另请参见:使用-server,JVM将更积极地编译热点(即经常执行的部分代码),因此编译器将花费更多的时间来编译热点。这不是问题,因为您仅在进程长时间运行(例如在服务器上)时才使用此选项 当使用-client时,所做的优化会更轻、更快,因为在运行客户端应用程序时,编译器启动时,您

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


有人能总结一下它的功能吗?

我似乎记得读过这样一篇文章:它在前面做了更多的工作,这样长时间运行的程序性能更好,但启动速度较慢


另请参见:

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


当使用-client时,所做的优化会更轻、更快,因为在运行客户端应用程序时,编译器启动时,您不希望出现长时间的pauze。

在某些平台上,默认情况下会设置-server标志

i、 e.如果其Linux/Solaris和具有超过2GB的内存和超过2个处理器。正如您所知,这些需求是很久以前定义的。我有比现在更好的笔记本电脑

我猜他们从来没有在Windows上设置默认值,因为他们假设Windows只运行客户端java,*nix运行服务器java


直到最近,我们还在Windows server上运行了长时间运行的服务器进程,并且打开该标志起到了明显的作用。

编译器在不同的线程中运行,因此不会出现真正的暂停。在开始编译代码和代码可用之间存在延迟。服务器热点也默认在编译之前等待更长的时间(因为编译需要更长的时间并使用更多的内存)。