JAVA:hotspot 虚拟机的server和client模式

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/magi1201/article/details/41597831

今天看java虚拟机的知识,发现sun的java虚拟机hotspot原来还分server模式和client模式两种。

就顺着搜了一下hotspot的server和client两种模式的相关知识,整理了一下,记录下来。

 

hotspot包括server和client两种模式的实现:

Java HotSpot Client VM(-client),为在客户端环境中减少启动时间而优化;

Java HotSpot Server VM(-server),为在服务器环境中最大化程序执行速度而设计。

比较:Server VM启动比Client VM慢,运行比Client VM快。

server模式的运行中,垃圾回收处理做的比较好一些。

 

看了一下hotspot的安装的模式,32位的hotspot都是client模式;64位的都是server模式的。

那32位的虚拟机就一定是client模式,64位的虚拟机就一定是server模式吗?不是

这个是可以调整的,可以通过配置文件来永久性的调整,也可以通过启动java虚拟机时的启动参数来指定虚拟机的运行模式。

 

永久性修改的话,是在java 虚拟机的配置文件中修改的。

配置文件的位置:32位的虚拟机在%JAVA_HOME%/jre/lib/i386/jvm.cfg

                           64位的虚拟机在%JAVA_HOME%/jre/lib/amd64/jvm.cfg

 

打开32位的虚拟机对应的模式配置文件看看

 

 
  1. # List of JVMs that can be used as an option to java, javac, etc.

  2. # Order is important -- first in this list is the default JVM.

  3. # NOTE that this both this file and its format are UNSUPPORTED and

  4. # WILL GO AWAY in a future release.

  5. #

  6. # You may also select a JVM in an arbitrary location with the

  7. # "-XXaltjvm=<jvm_dir>" option, but that too is unsupported

  8. # and may not be available in a future release.

  9. #

  10. -client KNOWN

  11. -server KNOWN

  12. -hotspot ALIASED_TO -client

  13. -classic WARN

  14. -native ERROR

  15. -green ERROR

 

看看这里面对我们有用的信息吧

第一行的模式被作为虚拟机默认的运行模式,如果想指定虚拟机按照server模式运行,那将第一行和第二行换个位置。

可以使用 "-XXaltjvm=<jvm_dir>" 选项来指定虚拟机的运行模式,但是模式仅限本次启动使用,下次不可再用。

 

 
  1. C:\Users\zWX192672>java -version

  2. java version "1.6.0_27"

  3. Java(TM) SE Runtime Environment (build 1.6.0_27-b07)

  4. Java HotSpot(TM) Client VM (build 20.2-b06, mixed mode, sharing)

  5.  
  6. C:\Users\zWX192672>java -XXaltjvm=Client -version

  7. java version "1.6.0_27"

  8. Java(TM) SE Runtime Environment (build 1.6.0_27-b07)

  9. Java HotSpot(TM) Client VM (build 20.2-b06, mixed mode, sharing)

  10.  
  11. C:\Users\zWX192672>java -version

  12. java version "1.6.0_27"

  13. Java(TM) SE Runtime Environment (build 1.6.0_27-b07)

  14. Java HotSpot(TM) Client VM (build 20.2-b06, mixed mode, sharing)

  15.  
  16. C:\Users\zWX192672>

 

64位的虚拟机配置文件中关于模式的两行为

 

 
  1. -server KNOWN

  2. -client IGNORE

client 模式后面对应参数为 IGNORE

 

再看看虚拟机的模式切换 

 

 
  1. D:\DEV_ENV\Java8_x64\jdk1.8.0_25\bin>java -version

  2. java version "1.8.0_25"

  3. Java(TM) SE Runtime Environment (build 1.8.0_25-b18)

  4. Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

  5.  
  6. D:\DEV_ENV\Java8_x64\jdk1.8.0_25\bin>java "-XXaltjvm=<client>" -version

  7. Error: missing `<client>' JVM at `D:\DEV_ENV\Java8_x64\jdk1.8.0_25\jre\bin\<client>\jvm.dll'.

  8. Please install or use the JRE or JDK that contains these missing components.

  9.  
  10. D:\DEV_ENV\Java8_x64\jdk1.8.0_25\bin>


无法通过server模式切换到client模式,说明hotspot在64位的虚拟机上面取消了client模式的服务。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值