美文网首页
2018-07-19 java -server

2018-07-19 java -server

作者: sharajava | 来源:发表于2018-07-19 14:47 被阅读0次

    跑 Java 应用服务端程序时,都加个 -server 启动选项,什么作用呢?

    直接问题 Java

    man java

    有明确说明:

     -server             Selects the Java HotSpot Server VM.  For more information see Server-Class Machine Detection at http://java.sun.com/j2se/1.5.0/docs/guide/vm/server-class.html
    

    (这里要给 Java 团队提 BUG 了:明明在 JDK 8 上 man 的,给出的链接还是 JDK 5 的)

    链接跳转至:https://docs.oracle.com/javase/1.5.0/docs/guide/vm/server-class.html

    JDK 8 上也有相同的页面:https://docs.oracle.com/javase/8/docs/technotes/guides/vm/server-class.html

    转述一下

    Java HotSpot 有两类 JVM:server VM 和 client VM。

    Server VM 为服务器端应用场景做了更多优化,可以显著提高运行时的性能,而这个优化需要更多的启动时间。-server 选项指定使用 server VM 来运行。

    而对于一个典型的客户端应用,需要更快的启动速度,而且用不到这些基于服务端应用的优化时,那么就通过 -client 选项指定使用 client VM 来运行。

    如果不指定,则使用默认。对照官方链接中的表格,可以看到:

    对于我们常用的平台,只有 Windows 特殊一些,默认是 client VM。(也好理解,认为 Windows 平台上一般跑的还是桌面客户端应用)

    x86 Linux 平台会自动检测,超过 2个 CPU 和 2GB 物理内存则启用 server VM。

    相关文章

      网友评论

          本文标题:2018-07-19 java -server

          本文链接:https://www.haomeiwen.com/subject/amrtmftx.html