前言
1、解释和比较
hotspot包括server和client两种模式的实现:
Java HotSpot Client VM(-client),为在客户端环境中减少启动时间而优化;
Java HotSpot Server VM(-server),为在服务器环境中最大化程序执行速度而设计。
比较:
两种模式的区别在于,Client模式启动速度较快,Server模式启动较慢;但是启动进入稳定期长期运行之后Server模式的程序运行速度比Client要快很多。
因为因为Server模式启动的JVM采用的是重量级的虚拟机,对程序采用了更多的优化,server模式会尝试收集更多的系统性能信息,使用更复杂的优化算法对程序进行优化。而Client模式启动的JVM采用的是轻量级的虚拟机
因此当系统完全启动并进入运行稳定期后,server模式的执行速度会远远快于client模式,所以在对于后台长期运行的系统,使用server模式启动对系统的整体性能可以有不小的帮助,但对于用户界面程序,运行时间不长,又追求启动速度建议使用client模式启动
2、模式根据
看了一下hotspot的安装的模式,32位的hotspot都是client模式;64位的都是server模式的。
1、查看当前虚拟机处于那种模式,如下图是64位的虚拟机
Java -version
下图是32位的虚拟机
2、 Client与Server切换
首先要确认JDK支持哪一种或两种模式。查看JAVA_HOME/jre/bin目录下是否存在client或server目录。32位的JDK一般都支持server和client两种模式。64位的虚拟机好像只支持server模式(不能修改模式),没有client目录。如下为32位JDK模式支持目录:
在32位JDK中,jvm.cfg位置为:JAVA_HOME/jre/lib/i386/jvm.cfg;
切换模式只需要将client和server的声明语句互换位置即可。如下图所示