zoukankan      html  css  js  c++  java
  • JVM client模式和Server模式的区别

    我们把jdk安装完成后,在命名行输入java -version

    不仅可以看到jdk版本相关信息,还会看到类似与 Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode) 这样的信息。

    其中有个Server VM (build 25.31-b07, mixed mode)其实代表了JVM的Server模式了。

    当然JVM还有一个Client模式。

    JVM Server模式与client模式启动的差别?

    最主要的差别在于:-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升.原因是:

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

    所以通常用于做服务器的时候我们用服务端模式,如果你的电脑只是运行一下java程序,就客户端模式就可以了。当然这些都是我们做程序优化程序才需要这些东西的,普通人并不关注这些专业的东西了。其实服务器模式即使编译更彻底,然后垃圾回收优化更好,这当然吃的内存要多点相对于客户端模式。

    怎么修改JVM的启动模式呢?

    64位系统默认在 JAVA_HOME/jre/lib/amd64/jvm.cfg

    32在目录JAVA_HOME/jre/lib/i386/jvm.cfg

    我的配置是这样的,所以是已服务器模式启动的,当然,你想换成client模式的话,把两个对调一下就可以了。

    #
    -server KNOWN
    -client IGNORE

    当然,我们做开发,安装jdk的时候直接安装服务器模式就没有是很好的习惯了。。。。。。

    client模式下,JVM初始和最大堆大小为:
    在物理内存达到192MB之前,JVM最大堆大小为物理内存的一半,否则,在物理内存大于192MB,在到达1GB之前,JVM最大堆大小为物理内存的1/4,大于1GB的物理内存也按1GB计算,举个例子,如果你的电脑内存是128MB,那么最大堆大小就是64MB,如果你的物理内存大于或等于1GB,那么最大堆大小为256MB。
    Java初始堆大小是物理内存的1/64,但最小是8MB。

    server模式下:
    与client模式类似,区别就是默认值可以更大,比如在32位JVM下,如果物理内存在4G或更高,最大堆大小可以提升至1GB,,如果是在64位JVM下,如果物理内存在128GB或更高,最大堆大小可以提升至32GB。

    只有运行在 server 模式下的时候才是 min(1G, 物理内存的四分之一) 

    参考: 

    https://www.cnblogs.com/huzi007/p/6728328.html

    https://zhidao.baidu.com/question/1703232626938481420.html

  • 相关阅读:
    iphone4 系统ios4电话截获
    获取iPhone通话记录(需越狱)
    漫谈SRM主数据迁移及同步(3. 供应商主数据篇)
    对于收货确认的取消,参考此2个Notes 1292032 & 1300861
    漫谈SRM主数据迁移及同步(4. 工厂主数据篇)
    漫谈SRM主数据迁移及同步(2.2 物料主数据篇)
    漫谈SRM主数据迁移及同步(2.1 物料主数据篇)
    采购需求者离职后,其他用户无法操作其创建的购物车
    漫谈SRM主数据迁移及同步(1.2 基本设置篇)
    漫谈SRM主数据迁移及同步(1.1 基本设置篇)
  • 原文地址:https://www.cnblogs.com/grasp/p/10184383.html
Copyright © 2011-2022 走看看