JVM有两种运行模式Server与Client 。两种模式的区别在于,Client模式启动速度较快,Server模式启动较慢;但是启动进入稳定期长期运行之后Server模式的程序运行速度比Client要快很多 。这是因为Server模式启动的JVM采用的是重量级的虚拟机,对程序采用了更多的优化;而Client模式启动的JVM采用的是轻量级的虚拟机 。所以Server启动慢,但稳定后速度比Client远远要快 。
1. 当前是Client or Server?使用JAVA -version命令就能显示出当前虚拟机处于哪种模式 。 Client: 如下图所示,可以看到HotSpot虚拟机采用Client模式启动的 。
文章插图
【天呀!JVM居然还有2两种运行模式】
Server: 如下图所示,可以看到HotSpot虚拟机采用Server模式启动的 。另外我们也能看到该虚拟机是64位的 。如果像上面的Client图中那样不显示位数,则是32位虚拟机 。所以使用java -version也能查看虚拟机是32位还是64位 。
文章插图
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两种模式 。64位的虚拟机好像只支持server模式,没有client目录 。如下为32位JDK模式支持目录:
文章插图
切换模式只需要将client和server的声明语句互换位置即可 。如下图所示,红框中为32位虚拟机中默认配置的client启动(已被注释掉) 。蓝框中为修改之后的server模式启动 。需要注意的是:在配置文件中最好不要出现空行,空行会报warning 。
文章插图
64位因为只支持server模式,如果我们修改了配置,启动JVM时会报错,无法启动 。
推荐阅读
- 自动驾驶|美国一辆无人汽车被截停后居然“逃逸” 公司回应
- AMD|“亮机卡”走歪了!RX 6400居然比RX 6500 XT还要贵
- 神奇!喝了这么久的“太平猴魁”才知道它的由来居然是……
- 电热水器不清洗,居然还隐藏着这样的危险
- 太极拳居然可以治疗颈椎病 道理很简单
- 太极拳居然有这功效 我震惊了
- 梦到中奖数字醒了全忘了 梦到中奖数字第二天居然出现了
- Java虚拟机:Jvm概念和原理详解以及GC机制的分析
- 只会用chmod 777?Linux下的文件权限居然还有这么多骚操作
- JVM调优:基本概念