`
逆天子军少
  • 浏览: 77721 次
  • 性别: Icon_minigender_1
  • 来自: 安庆
社区版块
存档分类
最新评论

JVM的server模式和client模式

    博客分类:
  • java
阅读更多
最近在看关于java并发编程的一本书,书中提及到了虚拟机的server和client模式。不是很理解,于是上网扫盲,总结如下:

Jvm有client和server两个版本,分别针对桌面应用程序和服务端应用做了相应的优化,client版本加载速度较快,server版本加载速度较慢但运行起来较快。简言之:client版本启动快,server版本运行快。由于服务器的CPU、内存和硬盘都比客户端机器强大,所以程序部署后,都应该以server模式启动,获取较好的性能。
我们可以通过运行:java -version来查看jvm默认工作在什么模式。(这个命令以前经常用,但是只是拿来看看java版本,没注意到还藏有jvm模式的信息, )我现在用的是ubuntu系统,结果如下:



可以看到,ubuntu系统默认的是server模式,在window下默认的是client模式,大家可以试试。

如果你想在window下以server模式运行,在运行java类时加-server参数或者直接修改jvm配置文件。32位的虚拟机配置在目录JAVA_HOME/jre/lib/i386/jvm.cfg,64位的在JAVA_HOME/jre/lib/amd64/jvm.cfg, 目前64位只支持server模式,  配置内容大致如下:



一般只要变更 -server KNOWN 与 -client KNOWN 两个配置位置先后顺序即可,前提是JAVA_HOME/jre/bin 目录下同时存在 server 与client两个文件夹,分别对应着各自的jvm.

至于为什么两种模式会有这种差异,虽然不管是哪种模式,共用的都是一套解释器,按理说纯解释执行的性能应该一样。但是解释器虽然是同一个,但它却可以根据启动参数的不同而变得不同。而且有很多因素会影响,解释器自身的性能是一点,VM里其它部分的情况又是一点,例如说GC。

这些还是等到后面系统学习java虚拟机在总结吧,回到并发。。。
  • 大小: 32.4 KB
  • 大小: 16.1 KB
2
0
分享到:
评论

相关推荐

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

    主要介绍了Java虚拟机JVM的client模式和Server模式两者的区别和联系

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

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

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

    class的执行在Sun JDK中有解释执行和编译为机器码执行两种方式,其中编译为机器码又分为client和server两种模式。Sun JDK为了提升class的执行效率,对于解释执行和编译为机器码执行都设置了很多的优化策略。 Java...

    resin-jvm 调优

    理解了应用程序的工作负荷和jvm支持的垃圾收集算法,便可以进行优化配置垃圾收集器。 垃圾收集的目的在于清除不再使用的对象。gc通过确定对象是否被活动对象引用来确定是否收集该对象。gc首先要判断该对象是否是...

    java查看sun包源码-monitor:java生产环境内存调优(包括jvm参数类型,JVM的参数类型jinfo&jps(参数和进程查看)j

    -Xmixed:混合模式,JVM 自己决定是否编译成本地代码 示例: java -version(默认是混合模式) Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode) java -Xint -version Java HotSp

    couchbase-java-client:Couchbase Server的官方Java客户端

    官方Couchbase Java SDK 注意:此存储库包含2.x SDK系列,该系列当前处于维护模式。 我们建议您查看我们的3.x系列,可以在这里找到: : 使用Java(或在JVM上)时,该项目是Couchbase的官方驱动程序。 它通过异步和...

    JBoss7-配置-管理员手册

    4.3.3.7.1. 单服务器模式(Standalone server) 53 4.3.3.7.2. 管理域模式 (managed domain) 54 4.4. 管理任务 56 4.4.1. 网络接口和端口 56 4.4.1.1. 网络接口声明 56 4.4.1.2. Socket Binding Groups 58 4.4.2. 管理...

    JBoss7配置指南及管理员手册

    单服务器模式(Standalone server) 53 4.3.3.7.2. 管理域模式 (managed domain) 54 4.4. 管理任务 56 4.4.1. 网络接口和端口 56 4.4.1.1. 网络接口声明 56 4.4.1.2. Socket Binding Groups 58 4.4.2. 管理接口的安全...

    JAVA_API1.6文档(中文)

    java.rmi.server 提供支持服务器端 RMI 的类和接口。 java.security 为安全框架提供类和接口。 java.security.acl 此包中的类和接口已经被 java.security 包中的类取代。 java.security.cert 提供用于解析和管理...

    java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心

    【JVM】JAVA编译原理和JVM原理 42 【JVM】Java内存模型 44 【JVM】jvm内存模型 45 主内存与工作内存 45 内存间交互操作 46 重排序 48 【JVM】内存泄漏 49 【JVM】java虚拟机的区域如何划分,每一个区的动能? 49 ...

    千方百计笔试题大全

    196、Can a database connection pool be instantiated in init method of servlet instead of server connection pool? What will be the problem? 46 综合部分 46 197、Class.forName的作用?为什么要用? 47 198、...

    java面试宝典

    196、Can a database connection pool be instantiated in init method of servlet instead of server connection pool? What will be the problem? 46 综合部分 46 197、Class.forName的作用?为什么要用? 47 198、...

    java面试题

    32. 应用服务器与WEB SERVER的区别? 16 33. BS与CS的联系与区别。 16 34. 启动一个线程是用run()还是start()? 17 35. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,...

    java jdk-api-1.6 中文 chmd

    java.rmi.server 提供支持服务器端 RMI 的类和接口。 java.security 为安全框架提供类和接口。 java.security.acl 此包中的类和接口已经被 java.security 包中的类取代。 java.security.cert 提供用于解析和管理...

    JavaAPI1.6中文chm文档 part1

    java.rmi.server 提供支持服务器端 RMI 的类和接口。 java.security 为安全框架提供类和接口。 java.security.acl 此包中的类和接口已经被 java.security 包中的类取代。 java.security.cert 提供用于解析和管理...

    JDK_1_6 API

    java.rmi.server 提供支持服务器端 RMI 的类和接口。 java.security 为安全框架提供类和接口。 java.security.acl 此包中的类和接口已经被 java.security 包中的类取代。 java.security.cert 提供用于解析和管理...

    JavaAPI中文chm文档 part2

    java.rmi.server 提供支持服务器端 RMI 的类和接口。 java.security 为安全框架提供类和接口。 java.security.acl 此包中的类和接口已经被 java.security 包中的类取代。 java.security.cert 提供用于解析和管理...

    [Java参考文档]

    java.rmi.server 提供支持服务器端 RMI 的类和接口。 java.security 为安全框架提供类和接口。 java.security.acl 此包中的类和接口已经被 java.security 包中的类取代。 java.security.cert 提供用于解析和管理...

    [Java参考文档].JDK_API 1.6

    java.rmi.server 提供支持服务器端 RMI 的类和接口。 java.security 为安全框架提供类和接口。 java.security.acl 此包中的类和接口已经被 java.security 包中的类取代。 java.security.cert 提供用于解析和管理证书...

Global site tag (gtag.js) - Google Analytics