JVM client模式和Server模式的区别

java程序在运行时,有client和server两种模式,性能、内存区别见下面链接:
http://blog.csdn.net/primary_wind/article/details/50330101
https://www.cnblogs.com/fsjohnhuang/p/4270505.html

这里摘出重要信息:

  1. 一句话区别
    JVM Server模式与client模式启动,最主要的差别在于:
    -Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升.
    -client加载速度比server模式快10%,而运行速度为server模式的10分之一
    原因是:

    当虚拟机运行在-client模式的时候,使用的是一个代号为C1的轻量级编译器, 而-server模式启动的虚拟机采用相对重量级,代号为C2的编译器. C2比C1编译器编译的相对彻底,,服务起来之后,性能更高.

  2. 模式选择
    当JVM用于启动GUI界面的交互应用时适合于使用client模式,
    当JVM用于运行服务器后台程序时建议用Server模式

  3. 默认内存使用
    client模式默认-Xms是1M,-Xmx是64M;
    JVM在Server模式默认-Xms是128M,-Xmx是1024M

  4. 切换模式
    以java -version为例查看JVM的默认运行模式,默认为client
    指定client模式

    java -client -version
    

    指定server模式

    java -server -version
    

    在运行其他java程序时,也可以通过如上方式指定模式