4. 内存回收(Client、Server模式)
JVM有两种运行模式Server与Client。两种模式的区别在于:
- Client模式启动速度较快
- Server模式启动较慢
但是启动进入稳定期长期运行之后Server模式的程序运行速度比Client要快很多。这是因为:
- Server模式启动的JVM采用的是重量级的虚拟机,对程序采用了更多的优化;
- Client模式启动的JVM采用的是轻量级的虚拟机。所以Server启动慢,但稳定后速度比Client远远要快。
1. 当前是Client or Server?
使用Java -version命令就能显示出当前虚拟机处于哪种模式。
Client
Server
另外我们也能看到该虚拟机是64位的。如果像上面的Client图中那样不显示位数,则是32位虚拟机。所以使用java -version也能查看虚拟机是32位还是64位。
2. Client与Server切换
2.1 模式切换
如果要切换启动模式,首先要确认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时会报错,无法启动。模式 新生代GC方式 老年代和持久代GC方式 client Serial 串行GC Serial Old 串行GC server Parallel Scavenge 并行回收GC Parallel Old 并行GC
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 我的生活小站!