区别:
(1)-Server模式启动速度较慢,但是一旦启动运行后性能会有很大的提升;
(2)JVM工作在Server模式可以大大提升性能,但应用启动会比client模式慢大概10%;
(3)当该参数不指定时,虚拟机启动检测主机是否为服务器,如果是则以Server模式启动,否则以client模式启动,J2SE5.0检测的根据是至少2个cpu和最低2G内存。
(4)JVM Server模式下Method call性能高于client模式10倍,Hash性能高于client模式2倍左右。
(5)当JVM用于启动GUI界面的交互应用时适合于使用client模式,当JVM用于运行服务器后台程序时建议用Server模式。
(6)JVM在client模式默认-Xms是1M,-Xmx是64M;JVM在Server模式默认-Xms是128M,-Xmx是1024M。我们可以通过运行:java -version来查看jvm默认工作在什么模式。
(7)位置:jre/bin/server jre/bin/client 两个jvm文件大小都不一样。
(8)如果没有指定JVM版本,会自动根据OS和硬件环境进行识别。windows下默认是client,Unix下默认Server
Server-Class Machine Detection,官方描述参考:http://download.oracle.com/javase/1.5.0/docs/guide/vm/server-class.html
其中一条Note: For J2SE 5.0, the definition of a server-class machine is one with at least 2 CPUs and at least 2GB of physical memory.
可以通过 java -version 查看运行模式。
各种性能对比图:
参考资料:
http://developer.51cto.com/art/201009/228035.htm
http://blog.csdn.net/fbysss/article/details/5815745
相关推荐
在Java开发中,JVM(Java Virtual Machine)是运行所有Java程序的核心,它负责解析字节码并执行。为了确保应用程序高效稳定地运行,开发者需要对JVM进行监控,了解其内部状态,如内存使用、线程活动等。本文将探讨...
Java虚拟机(JVM)是Java编程语言的核心组成部分,它为Java程序提供了运行环境,使得Java代码能够在不同的操作系统上“一次编写,到处运行”。JVM是Java平台的一部分,负责执行字节码,管理内存,垃圾收集,以及提供...
特别是堆内存、栈内存、方法区(元空间)以及垃圾收集机制,它们是理解JVM运行时行为的关键。 2. **字节码与类加载**:JVM通过类加载器动态加载Java类,将.class文件转换为运行时的数据结构。字节码的解析和执行由...
介绍常用的JVM参数,包括内存分配、堆栈分配、虚拟机运行模式以及调试跟踪参数。 第四课 GC的算法和种类 引用计数 标记清除 复制算法 标记压缩 可触及性 本章是理论性较强的一章,主要介绍GC的基本算法和思想,本...
Java虚拟机(JVM)是Java技术的核心组成部分之一,它为Java程序提供了运行时环境。本节将详细介绍JVM的基本概念及其核心技术——HotSpot。 **HotSpot VM** 是Oracle公司提供的一个高性能Java虚拟机实现,它具有以下...
- **半编译半解释**:Java的这种运行模式意味着它在编译阶段并不直接生成机器码,而是生成中间形式的字节码,这些字节码在运行时由JVM解释或即时编译为机器码。 - **平台无关性**:Java的平台无关性主要得益于字节...
JVM是运行Java程序的核心组件,负责解释Java字节码,并将字节码转换成特定平台的机器码。在性能优化过程中,JVM的配置、监控和调优是确保Java应用高效运行的关键。 JVM性能调优是通过合理的配置来优化Java应用的...
这种模式提供了灵活性和安全性,同时也允许JVM在运行时对字节码进行优化。 ##### 1.5 平台无关性 Java的设计目标之一是实现平台无关性。通过将源代码编译为字节码而不是特定平台的机器代码,Java程序能够在不同的...
JVM(Java Virtual Machine)是运行Java字节码的虚拟机,它为Java程序提供了平台独立性,使得Java程序可以在任何支持JVM的平台上运行而无需重新编译。JVM的主要组成部分包括类加载器、运行时数据区、执行引擎、本地...
- 在 client 模式下默认使用。 - 适合于单核处理器或轻负载的应用场景。 2. **并行回收GC** (Parallel Scavenge): - 多线程进行垃圾回收。 - 侧重于吞吐量最大化。 - 适合于多核处理器和高负载的应用场景。 ...
其中`libname`为本地代理库文件名,如`hprof`,可用于获取JVM的运行情况,包括CPU、内存、线程等运行数据,并可以输出到指定文件中。`options`是传递给本地库的参数,多个参数间用逗号分隔。在不同的操作系统上,...
《JVM诊断指南1.4.2》是Java开发者的重要参考资料,主要针对JVM(Java虚拟机)在运行过程中可能出现的问题进行调试和分析。这份指南深入解析了如何诊断和解决与JVM性能、内存管理、线程状态等相关问题,帮助开发者...
1. 标准参数:以“-”开头,如“-server”、“-client”,这些参数在所有JVM实现中都是一致的,用于设置JVM的运行模式等基础功能。标准参数还包括用于查看版本、设置classpath路径、打印相关信息等。 2. 非标准参数...
在MATLAB 6.5的时代,它可能尚未完全过渡到现代的Java独立运行模式,因此需要微软的JVM来支持其内置的Java组件。 在提供的文件列表中,有两个文件: 1. `msjavx86_3805.exe`:这很可能是微软Java虚拟机3805版本的...
EBS是Oracle提供的一套全面的企业资源规划软件,而JVM则是运行Java应用程序的必要组件。在某些情况下,由于兼容性问题,IE11可能无法正确地与EBS系统中的Java环境协同工作。 描述中提到的"win10 ie11登陆ebs的 ...
7. OutOfMemoryError(内存溢出错误)的分析:内存溢出错误是JVM运行时常遇到的问题,文档中对此进行了分类,包括Java堆空间溢出、交换空间不足、无法创建新原生线程等情况,并提供了相应的分析方法。 8. 类加载和...
JVM的设计使得Java程序可以跨平台运行,即编写一次代码可以在多个平台上运行。 - **类加载器系统**:负责读取Java类文件,将其加载到JVM中,并对这些类进行验证和准备。主要包括Bootstrap ClassLoader、Extension ...
JVM有两种执行模式:解释器和即时编译器(JIT)。解释器逐行解释字节码执行,而JIT会在运行时将热点代码编译为本地机器码,提升性能。HotSpot JVM中包含C1和C2两种JIT编译器,分别对应轻量级和重量级优化。 **Java...
3. **类的命名空间及运行时包**:类的命名空间是指在JVM中每个类都有唯一的标识符,防止命名冲突。运行时包则是在类加载过程中动态确定的包名,它可能与编译时指定的包名不同。 4. **类的卸载**:当一个类不再被...