JVM client模式和Server模式的区别

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

  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默认工作在什么模式。

  启动client jvm 和server jvm的方式如下:
  java -client yourclass
  java -server yourclass

   更改默认java.exe调用的jvm.dll,这个由jvm.cfg决定。 

  32位的虚拟机在目录JAVA_HOME/jre/lib/i386/jvm.cfg,

  64位的在JAVA_HOME/jre/lib/amd64/jvm.cfg, 目前64位只支持server模式。

  改变32位的虚拟机java.exe默认调用的jvm.dll。

  编辑%JAVA_HOME%\jre\lib\i386\jvm.cfg 
  里面第一行写的是 -client 默认就是client版本 ,把第二行的-server KNOWN 放到第一行, 如下面所示
  -server KNOWN
  -client KNOWN
  -hotspot ALIASED_TO -client
  -classic WARN
  -native ERROR
  -green ERROR
  改完保存,然后看看默认版本:
  C:\java -version

  看看你下面的这两个文件,是不是尺寸差别很大?
  %JAVA_HOME%/jre/bin/client/jvm.dll
  %JAVA_HOME%/jre/bin/server/jvm.dll
       Jvm动态库有client和server两个版本,分别针对桌面应用和服务器应用做了相应的优化,client版本加 载速度较快,server版本加载速度较慢但运行起来较快。
       让Tomcat 使用Server版本的jvm吧  在开始菜单 tomcat5 ->tomcat config的java属性中 有一项 jvm路径 指向server目录下的jvm就行了。

  

时间: 2024-11-02 15:34:10

JVM client模式和Server模式的区别的相关文章

Java虚拟机6:内存溢出和内存泄露、并行和并发、Minor GC和Full GC、Client模式和Server模式的区别

http://www.cnblogs.com/xrq730/p/4839245.html 前言 之前的文章尤其是讲解GC的时候提到了很多的概念,比如内存溢出和内存泄露.并行与并发.Client模式和Server模式.Minor GC和Full GC,本文详细讲解下这些概念的区别. 内存溢出和内存泄露的区别 1.内存溢出 内存溢出指的是程序在申请内存的时候,没有足够大的空间可以分配了. 2.内存泄露 内存泄露指的是程序在申请内存之后,没有办法释放掉已经申请到内存,它始终占用着内存,即被分配的对象可

jvm client模式和server模式

主要区别:client模式启动快,运行速度慢(启动快可能是由于数据共享),HotSpot VM的client模式实现了数据共享.Server 模式 启动慢,执行速度快.默认情况下,启动时JVM会通过检测主机是否为服务器来判定使用client模式还是server模式.client模式适用于GUI的开发,Server模式适用于Java Server 下面是51CTO的一篇文章 这里向大家描述一下JVM client模式和Server模式两者的区别和联系,JVM如果不显式指定是-Server模式还是-

关于JVM的Client模式和Server模式

曾几何时,我也敲打过无数次这样的命令: 然而之前的我都只关心过版本号,也就是第一行的内容.今天,我们就来看看第3行输出的内容:JVM的工作模式. 通过百度搜索,只能搜到几篇被重复转载的文章.比如这一篇,这里面基本描述了JVM两种模式的区别: -Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升. 但我认为仅仅知道这些区别还不够.然而,我在百度的搜索结果中很少看见有描述的比较深入的关于JVM两种模式区别的文章.不过我倒是找到了这一篇文章. 这篇文章中提到了如下内容: 当虚拟

JVM的Client模式与Server模式

Client/Server结构(C/S结构)是大家熟知的客户机和服务器结构.它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销.目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件:因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中

小白的JVM优化 1: 虚拟机的工作模式---client模式和server模式

虚拟机可以工作在client和server模式下 如图所示: server模式会尝试收集更多的系统性能信息,使用更复杂的优化算法对程序进行优化. 因此,当系统完全启动并进入运行稳定期后,server模式的执行速度会远快于client模式. --- client模式的默认系统参数可以查询如下: 这个优化应该是最简单的了,没什么好解释的,高手绕道勿喷.

Java Hotspot client模式和server模式的区别

当虚拟机运行在-client模式的时候,使用的是一个代号为C1的轻量级编译器, 而-server模式启动的虚拟机采用相对重量级,代号为C2的编译器. C2比C1编译器编译的相对彻底,服务起来之后,性能更高- 重点:在部分JDK1.6版本和后续的JDK版本(64位系统)中,-client参数已经不起作用了,Server模式成为唯一 了解更多:https://stackoverflow.com/questions/198577/real-differences-between-java-server

Oracle Dedicated server 和 Shared server(专用模式 和 共享模式) 说明(转)

一.  官网说明 在DBCA 建库的时候,有提示让我们选择连接类型,这里有两种类型:专用服务器模式和共享服务器模式.默认使用专用模式.如下图: Oracle 官方文档对这两种文档的说明如下: About Dedicated andShared Server Processes http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/manproc001.htm OracleDatabase creates server pro

emacs使用本地emacs server模式打开远程文件

使用emacs的用户都知道,一般要打开远程机器上的文件要使用TrampMode模式,调用方式例如以下: C-x C-f /remotehost:filename RET (or /method:[email protected]:filename) 但,这样打开有点麻烦,你必要输入username和机器ip等 emacs提供了一种client/server的模式,当我们在本地打开一个emacs,能够将它作为server执行 然后,在本地机器的其它都方要用emacs的时候,如在terminal中要

linux的bond模式绑定及模式区别

[linux的bond模式配置] 原理: 多块网卡虚拟成一张,实现冗余:多张网卡对外显示一张,具有同一个IP: 工作在网卡是混杂模式的情况下: 对于多物理网卡的 Bond 网卡而言,其中一块物理网卡会被设置为 Master,其他的网卡都是 Slave,Bond 网卡的 MAC 地址取自标志为 Master 的物理网卡,然后将这个 MAC 地址复制到其他物理网卡上: 工作模式: 在主备模式下 , 只有主网卡 eth0 工作,eth1 作为备份网卡是不工作的,只有当一个网络接口失效时 ( 例如主交换