我找不到任何关于-server
在启动 sun HotSpot JVM 时传递该选项的确切效果的明确文档。
任何人都可以总结它的作用吗?
使用 -server,JVM 将更积极地编译热点(即经常执行的部分代码),因此编译器将花费更多时间来完成此操作。这不是问题,因为您仅在您的进程运行较长时间(例如在服务器上)时才使用此选项。
使用 -client 时,完成的优化会更轻松、更快,因为在运行客户端应用程序时编译器启动时您不希望长时间停顿。
我似乎记得读过它在前面做了更多的工作,以便长时间运行的程序性能更好,但代价是启动速度较慢。
在某些平台上,默认设置 -server 标志。
即,如果它的 Linux/Solaris 具有超过 2GB 的内存和超过 2 个处理器。如您所知 - 这些要求是很久以前定义的。我有比现在更好的笔记本电脑......!
我猜他们从未在 Windows 上将其设置为默认值,因为他们假设 Windows 只会运行客户端 java 而 *nix 会运行服务器 java。
直到最近,我们在 Windows Server 上运行了我们长期运行的服务器进程,并且打开标志产生了明显的不同。