`
weigang.gao
  • 浏览: 486197 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

JVM client模式和Server模式的区别

 
阅读更多

JVM Server模式与client模式启动,最主要的差别在于:-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升。JVM如果不显式指定是-Server模式还是-client模式,JVM能够根据下列原则进行自动判断(适用于Java5版本或者Java以上版本)。

前段时间有个同事给我发了个java跟c++性能比较的文章,其中有个对比图引起了我的兴趣,意外的是,我感兴趣的不是java和c++的对比,而是java -Server模式和java -client模式的对比。从来没想到两者间的性能有如此巨大的差别。而在后来自己的亲身测试中发现确实如此。

下面是我看到的那个对比图:

 

图中最显著的就是JVM client模式和Server模式关于method call的对比,那个差别不是一般的大,在后来的测试中发现,相差至少有10倍。

下面是另外两个对比图:

 

 

JVM工作在Server模式可以大大提高性能,但应用的启动会比client模式慢大概10%。当该参数不指定时,虚拟机启动检测主机是否为服务器,如果是,则以Server模式启动,否则以client模式启动,J2SE5.0检测的根据是至少2个CPU和最低2GB内存。

当JVM用于启动GUI界面的交互应用时适合于使用client模式,当JVM用于运行服务器后台程序时建议用Server模式。
 JVM在client模式默认-Xms是1M,-Xmx是64M;JVM在Server模式默认-Xms是128M,-Xmx是1024M。我们可以通过运行:java -version来查看jvm默认工作在什么模式。

 

problem: HotSpot VM中C1与C2的区别?

http://blog.csdn.net/li563868273/article/details/50166351

  • 大小: 39.2 KB
  • 大小: 51 KB
  • 大小: 38.8 KB
分享到:
评论

相关推荐

    Java虚拟机JVM之server模式与client模式的区别

    JVM的server模式和client模式之间的区别是很明显的,server模式下的应用程序可以大大提高性能,而client模式下的应用程序启动速度较快。因此,在选择JVM运行模式时,需要根据实际情况和应用程序的特点进行选择,以...

    深入JVM内核 - 原理、诊断与优化

    server与client模式 调试跟踪参数 介绍常用的JVM参数,包括内存分配、堆栈分配、虚拟机运行模式以及调试跟踪参数。 第四课 GC的算法和种类 引用计数 标记清除 复制算法 标记压缩 可触及性 本章是理论性较强的一章...

    jvm内存参数调优

    -client和-server模式的选择直接影响了程序的启动速度和运行时性能;-agentlib和-agentpath允许我们利用外部库来监控和调试JVM;-classpath和-cp则帮助我们指定类路径;-Dproperty=value用于设置全局变量;最后,-...

    Jvm 优化手册

    1. **-client**:此参数设定JVM使用Client模式,该模式下JVM启动速度快,但牺牲了一定的运行时性能和内存管理效率,适合于客户端应用或轻量级开发环境。其快速启动特性有助于提升开发阶段的效率。 2. **-server**:...

    让天下没有难做的JVM.pdf

    JVM有两种运行模式:Server模式和Client模式。Server模式适合长时间运行的服务器端应用程序,具有更多的优化,启动虽然慢,但运行速度快;Client模式适合桌面应用程序,启动速度快,但运行性能相对较低。在了解JVM...

    Java 6 JVM参数选项大全

    这些参数通常以-XX:开头,允许开发者调整JVM内部的工作机制,以适应特定的应用场景和性能需求。以下是一些关键的JVM选项及其详细解释: 1. -XX:+<option> / -XX:-<option>: 这些选项用于启用或禁用某个特性。例如,...

    JVM系列之性能调优参考手册(实践篇).pdf

    1. 标准参数:以“-”开头,如“-server”、“-client”,这些参数在所有JVM实现中都是一致的,用于设置JVM的运行模式等基础功能。标准参数还包括用于查看版本、设置classpath路径、打印相关信息等。 2. 非标准参数...

    详细讲解了jvm在java中应用

    JVM有两种运行模式,Server模式和Client模式,Server模式适用于长期运行的高性能应用,而Client模式启动更快,适合轻量级应用。 内存结构在JVM中起着至关重要的作用,它包括程序计数器、虚拟机栈、本地方法栈、堆和...

    JVM优化与OOM分析PPT

    - **Step 2:初始配置**:根据系统的具体需求选择-server或-client模式;调整-Xmx和-Xms的值;设置年轻代和年老代的比例等。 - **Step 3:持续监控**:在调优过程中持续监控JVM的状态,通过日志分析工具观察性能指标...

    JVM启动参数应用集合

    `-client` 和 `-server` 参数用于选择JVM的执行模式。`-client` 模式适用于桌面应用或开发调试,因为它启动速度快,但运行时性能较低。相反,`-server` 模式适合服务器端应用,提供更好的运行时性能和内存管理,但...

    JVM中编译Class、内存回收、多线程原理和使用

    Client模式适用于启动速度,而Server模式侧重于长期运行的性能优化。JVM会监控和分析运行过程中的热点代码,适时将其编译为本地机器码,以提高执行效率。 3. 内存管理(Memory Management): 在Java中,程序员...

    Server And Client

    【标题】"Server And Client"涉及的IT知识点主要包括Java编程语言、...综上所述,"Server And Client"项目展示了Java在开发网络通信应用中的应用,涵盖了从编程语言基础、网络通信机制到软件部署和执行的多个重要环节。

    JVM实用参数

    - **类型**:`client`,HotSpot JVM有两种类型——`server`和`client`,可以通过`-server`和`-client`参数来指定。如果不指定,则JVM会根据系统自动选择类型。通常,32位系统默认为`client`模式,64位系统默认为`...

    JVM 6 详细参数(中文版)

    - **默认值**:在`-server`模式下启用,其他情况下默认不启用。 - **描述**:采用并行垃圾收集策略,其中新生代使用并行清除算法,而老年代则使用单线程的Mark-Sweep-Compact算法。 - **适用场景**:适合CPU密集型且...

    JVM内存模型

    例如,在Server模式下,初始堆或堆的最小值(`-Xms`)一般设置为物理内存的1/64,而最大堆值(`-Xmx`)则设置为物理内存的1/4。这种自适应策略能够更好地优化JVM的性能表现。 #### 六、JVM内存分析参数 为了更好地...

    JVM面试专题.zip

    理解HotSpot VM中的Client Compiler和Server Compiler的区别有助于理解JVM的运行模式。 10. **异常处理与类加载器自定义**:理解和熟悉Java异常处理机制,以及如何自定义类加载器以实现特定的功能,如加载动态生成...

    实战Hot Spot JVM GC

    优化GC策略通常包括调整JVM启动参数,如-server模式、堆内存大小、新生代与老年代的比例等。例如,通过-Xms和-Xmx参数可以设置堆的初始大小和最大大小。-Xmn参数可以用来设置新生代大小,而-XX:PermSize和-XX:...

    第04章 大促高并发系统下JVM如何调优指导03.pdf

    总之,大促高并发系统下的JVM调优是一项复杂而细致的工作,涉及到服务器配置、Tomcat优化和JVM参数调整等多个层面。通过精心的调优,可以显著提高系统在高并发环境下的处理能力和稳定性,确保大促期间的服务质量。

    JVM学习笔记

    - **工作模式**: - `-server`:适用于服务器环境。 - `-client`:适用于客户端环境。 #### 垃圾回收算法 - **标记清除法**:标记不再使用的对象,然后进行清理。这种方法可能会导致内存碎片化问题。 - **复制...

    java jvm剖析

    了解HotSpot JVM中的Client和Server模式,以及如何触发和优化JIT编译,能显著提升性能。 6. **异常处理与线程模型**:JVM提供了丰富的异常处理机制,确保程序的健壮性。同时,JVM支持多线程,理解线程的创建、同步...

Global site tag (gtag.js) - Google Analytics