美文网首页
JVM的Client模式与Server模式

JVM的Client模式与Server模式

作者: JAVA架构师的圈子 | 来源:发表于2021-01-14 22:20 被阅读0次

    概述

    JVM有两种运行模式Server与Client。两种模式的区别在于,Client模式启动速度较快,Server模式启动较慢;但是启动进入稳定期长期运行之后Server模式的程序运行速度比Client要快很多。这是因为Server模式启动的JVM采用的是重量级的虚拟机,对程序采用了更多的优化;而Client模式启动的JVM采用的是轻量级的虚拟机。所以Server启动慢,但稳定后速度比Client远远要快。

    1. 当前是Client or Server?

    使用Java -version命令就能显示出当前虚拟机处于哪种模式。
    Client:
    如下图所示,可以看到HotSpot虚拟机采用Client模式启动的。

    在这里插入图片描述
    Server:
    如下图所示,可以看到HotSpot虚拟机采用Server模式启动的。另外我们也能看到该虚拟机是64位的。如果像上面的Client图中那样不显示位数,则是32位虚拟机。所以使用java -version也能查看虚拟机是32位还是64位。
    //加入Java开发交流君样:756584822一起吹水聊天 在这里插入图片描述
    2. Client与Server切换
    2.1 模式配置文件
    JVM启动时采用何种模式是在名为jvm.cfg的配置文件中配置的。
    在32位JDK中,jvm.cfg位置为:JAVA_HOME/jre/lib/i386/jvm.cfg; 在这里插入图片描述

    jvm.cfg中配置:(此时为client模式)

    在这里插入图片描述
    在64位JDK中,jvm.cfg位置为:JAVA_HOME/jre/lib/amd64/jvm.cfg。 在这里插入图片描述
    jvm.cfg中配置:(此时为server模式) 在这里插入图片描述
    2.2 模式切换
    如果要切换启动模式,首先要确认JDK支持哪一种或两种模式。查看JAVA_HOME/jre/bin目录下是否存在client或server目录。32位的JDK一般都支持server和client两种模式。//加入Java开发交流君样:756584822一起吹水聊天64位的虚拟机好像只支持server模式,没有client目录。如下为32位JDK模式支持目录: 在这里插入图片描述
    切换模式只需要将client和server的声明语句互换位置即可。如下图所示,
    红框中为32位虚拟机中默认配置的client启动(已被注释掉)。蓝框中为修改之后的server模式启动。需要注意的是:在配置文件中最好不要出现空行,空行会报warning。 在这里插入图片描述
    64位因为只支持server模式,如果我们修改了配置,启动JVM时会报错,无法启动。
    !image

    最新2020整理收集的一些高频面试题(都整理成文档),有很多干货,包含mysql,netty,spring,线程,spring cloud、jvm、源码、算法等详细讲解,也有详细的学习规划图,面试题整理等,需要获取这些内容的朋友请加Q君样:756584822

    相关文章

      网友评论

          本文标题:JVM的Client模式与Server模式

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