jvm 参数-server_JVM选项:-client vs -server

jvm 参数-server

您是否曾经在运行Java应用程序时想知道-client或-server开关是什么? 例如:

javaw.exe -client com.blogspot.sdoulger.LoopTest

也显示在java.exe的“帮助”中,例如,其中的选项包括:

-client选择“客户端” VM
-server选择“服务器” VM

-client和-server系统之间有什么区别?

这两个系统是不同的二进制文件。 它们本质上是与同一运行时系统接口的两个不同的编译器(JIT)。 对于需要快速启动时间或较小占用空间的应用程序,客户端系统是最佳选择;对于整体性能最为重要的应用程序,服务器系统是最佳选择。 通常,客户端系统更适合于交互式应用程序,例如GUI。 其他一些差异包括编译策略,堆默认设置和内联策略。

根据“ Java HotSpot性能引擎架构 ”:

JDK包括两种VM:客户端产品和为服务器应用程序调整的VM。 这两个解决方案共享Java HotSpot运行时环境代码库,但是使用不同的编译器,这些编译器适合于客户端和服务器的独特性能特性。 这些差异包括编译内联策略和堆默认值。

JDK在发行版中同时包含这两个系统,因此开发人员可以通过指定-client或-server来选择所需的系统。

尽管服务器VM和客户端VM相似,但已经对服务器VM进行了特殊调整,以最大程度地提高峰值运行速度。 它旨在用于运行长时间运行的服务器应用程序,这些应用程序需要比快速启动时间或较小的运行时内存占用更多​​的最快的运行速度。

客户端VM编译器可作为经典VM和早期JDK版本使用的即时(JIT)编译器的升级。 Client VM为应用程序和小程序提供了改进的运行时性能。 Java HotSpot客户端VM经过特别调整,以减少应用程序启动时间和内存占用,使其特别适合客户端环境。 通常,客户端系统更适合GUI。

客户端VM编译器不会尝试执行服务器VM中由编译器执行的许多更复杂的优化,但是作为交换,它需要较少的时间来分析和编译一段代码。 这意味着客户端虚拟机可以更快地启动,并需要较小的内存空间。

注意:似乎性能差异的主要原因是优化的数量。

Server VM包含一个高级自适应编译器,该编译器支持通过优化C ++编译器执行的许多相同类型的优化,以及一些传统编译器无法完成的优化,例如跨虚拟方法调用的主动内联。 与静态编译器相比,这是一个竞争优势和性能优势。 自适应优化技术的方法非常灵活,通常甚至优于高级静态分析和编译技术。

两种解决方案均提供了极其可靠,安全和可维护的环境,可满足当今企业客户的需求。

默认选项:

  • 对于热点是客户
  • 对于JRockit是服务器

JRockit的客户端和服务器VM选项
JRockit也有这两个选项,默认为服务器选项(热点是客户端)。
JRockit客户端选项为-client,服务器为-jrockit。

关于性能差异的动手实例
摘自 Onkar Joshi博客的示例证明了性能差异。

我们使用两个开关运行以下代码:

package com.blogspot.sdoulger;

public class LoopTest {
    public LoopTest() {
        super();
    }

    public static void main(String[] args) {
        long start = System.currentTimeMillis();
        spendTime();
        long end = System.currentTimeMillis();
        System.out.println("Time spent: "+ (end-start));
        
        LoopTest loopTest = new LoopTest();
    }

    private static void spendTime() {
        for (int i =500000000;i>0;i--) {
        }
    }
}

注意:该代码仅被编译一次! 两次运行中的类都相同!

使用-client:
java.exe -client -classpath C:\ JDeveloper \ mywork \ Test_java_client-server_switches \ Project1 \ classes com.blogspot.sdoulger.LoopTest
花费时间:766

使用-server:
java.exe -server -classpath C:\ JDeveloper \ mywork \ Test_java_client-server_switches \ Project1 \ classes com.blogspot.sdoulger.LoopTest
花费时间:0

似乎是对服务器系统进行了更为积极的优化,因此删除了循环,因为它知道它不执行任何操作!

挖掘更多/来源:

  • -client和-server系统之间有什么区别?
  • http://java.sun.com/products/hotspot/whitepaper.html#1
  • http://www.velocityreviews.com/forums/t130082-difference-between-client-server-classic-and-hotspot-jvms.html
  • http://www.onkarjoshi.com/blog/174/hotspot-jvm-client-server-vm-optimization/
  • http://stackoverflow.com/questions/198577/real-differences-between-java-server-and-java-client

参考:来自 Spyro's Log博客的 JCG合作伙伴 Spyros Doulgeridis的 -client和-server JVM命令行选项之间的差异 。

相关文章 :
  • Java中的低GC:使用原语而不是包装器
  • Java泛型快速教程
  • JVM如何处理锁
  • 使用迭代器时如何避免ConcurrentModificationException

翻译自: https://www.javacodegeeks.com/2011/07/jvm-options-client-vs-server.html

jvm 参数-server

dnc8371
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java -server 启动参数_JVM优化1 jvm的运行参数 内存模型 jstack命令 VisualJVM工具
weixin_30480859的博客
01-26 3032
今日内容了解下我们为什么要学习JVM优化掌握jvm的运行参数以及参数的设置掌握jvm的内存模型(堆内存)掌握jamp命令的使用以及通过MAT工具进行分析掌握定位分析内存溢出的方法掌握jstack命令的使用掌握VisualJVM工具的使用1、我们为什么要对jvm做优化?在本地开发环境中我们很少会遇到需要对jvm进行优化的需求,但是到了生产环境,我们 可能将有下面的需求:运行的应用“卡住了”,日志不输...
java参数-xmn1g_JVM-常用内存调优参数总结
weixin_36212762的博客
02-28 1180
一、内存调整参数-Xmx2g设置堆内存最大值为2g-Xmx512m设置堆内存最大值为512m-Xms1g设置堆内存最小值1g(ps:-Xms和-Xmx实际上是 -XX:InitialHeapSize 和-XX:MaxHeapSize 的缩写。例如:-XX:InitialHeapSize=128m -XX:MaxHeapSize=2g )-Xmn设置堆新生代的大小,例如:-Xmn512m-XX:Pe...
JVM选项:-client vs -server
最佳 Java 编程
05-06 291
您是否曾经在运行Java应用程序时想知道-client或-server开关是什么? 例如: javaw.exe -client com.blogspot.sdoulger.LoopTest 也显示在java.exe的“帮助”中,例如,其中的选项包括: -client选择“客户端” VM -server选择“服务器” VM -client和-server系统之间有什么区别...
JVM调优之-Server和-Client
lai赖的博客
07-29 460
JVM参数之-Server和-Client JVM可以通过-Server和-Client设置运行参数. -Server参数与-Client参数的区别 Server jvm的初始空间会大一些,默认使用的是并行垃圾回收器,启动慢,运行快 Client jvm相对保守一些,初始空间会小一些,使用串行垃圾回收器,他的目标是为了让JVM的启动速度更快,但是运行速度会比Server jvm慢一些 JVM在启...
如何使用serverjvm ?[转]
feng_sundy 的专栏
03-31 2916
如何使用serverjvm ?[转] 下面的这两个文件,尺寸差别很大. %JAVA_HOME%/jre/bin/client/jvm.dll %JAVA_HOME%/jre/bin/server/jvm.dll Jvm动态库有clientserver两个版本,分别针对桌面应用和服务器应用做了相应的优化, client版本加载速度较快,server版本加载速度较慢但运行起来较快。
java clientservers_“java -server”和“java -client”之间的真正区别?
weixin_35747785的博客
02-26 381
这实际上与HotSpot和默认选项值 ( Java HotSpot VM选项 )相关联,这些选项在客户端和服务器configuration之间有所不同。从白皮书( The Java HotSpot Performance Engine Architecture )的第2章开始 :JDK包含两种types的VM – 客户端产品和针对服务器应用程序调优的VM。 这两个解决scheme共享Java H...
java xmn_Java JVM 参数 -Xms -Xmx -Xmn -Xss调优总结
weixin_39764487的博客
02-15 1815
常见配置举例1.堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制.32位系统 下,一般限制在1.5G~2G;64为操作系统对内存无限制.我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m.典型设置:java-Xmx3550m -Xms35...
JVM常用启动参数
Stay Hungry, Stay Foolish!
05-29 5166
目录JVM常用启动参数系统属性参数运行模式参数堆内存设置参数显式指定堆内存`–Xms`和`-Xmx`显式新生代内存显示指定永久代/元空间的大小其他常用参数GC设置参数垃圾回收器GC记录分析诊断参数JavaAgent参数 文章放置于:https://github.com/zgkaii/CS-Study-Notes,欢迎批评指正! JVM常用启动参数 JVM启动参数的前缀主要有-、-D、-X、-XX、+/-、: 以-开头为标准参数,所以的JVM都要实现这些参数,并且向后兼容。例如-server。 -D
java hotspot 64bit_Java HotSpot(TM) 64-Bit Server VM warning
weixin_42359449的博客
02-13 4348
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000007e4200000, 467140608, 0) failed; error='无法分配内存' (errno=12)原因一般是由于启动的tomcat太多,导致服务器内存耗尽解决方案把每个tomcat的运行时内存减小1、打开tomcat的bin/ca...
JVM client模式和Server模式的区别
赶路人儿
02-23 5207
专用和公用JRE的不同 不同点在于专用JRE的bin里不仅有“client”目录,还有“server”目录,而公用的只有"client"目录。其实clientserverJava运行的两种模式,那么它们有什么区别呢? JVM client模式和Server模式启动,分别针对桌面应用和服务器应用做了相应的优化,client版本加载速度较快,server版本加载速度较慢但运行起来较
JVMJVM client模式和Server模式
Elephant_King的博客
02-07 1435
JVM Server模式和client模式启动,最主要的差别在于: -Server模式启动时,速度较慢,但是一旦运行起来后,新能会有很大提升 JVM不显式的指定时Server模式还是client模式,JVM能够自动判断 推荐在服务器上以Server模式运行,客户端或者GUI模式下可以用Client模式运行 ...
Java的虚拟机JVMJVM-serverJVM-client区别
fascinatingGirl的博客
08-19 4297
当前64位只支持server模式 Server VM启动比Client VM慢大概10%,运行比Client VM快至少有10倍; 由于服务器的CPU、内存和硬盘都比客户端机器强大,所以程序部署后,都应该以server模式启动,获取较好的性能; JVMclient模式默认-Xms是1M,-Xmx是64M;JVMServer模式默认-Xms是128M,-Xmx是1024M; server:启动慢,编译更完全,编译器是自适应编译器,效率高,针对服务端应用优化,在服务器环境中最大化程序执行速度而设计。 cli
java server 参数,什么是JVM -server参数
weixin_36352523的博客
02-12 169
I saw Java -server in http://shootout.alioth.debian.org/ for programming language benchmark.I know that -server is a parameter for running JVM. I want to know:When we use -server parameter and how it ...
记录一下jvm的-server和-client的区别
weixin_43952976的博客
10-03 508
记录一下jvm的-server和-client的区别 Jvm动态库有clientserver两个版本,分别针对桌面应用和服务器应用做了相应的优化,client版本加 载速度较快,server版本加载速度较慢但运行起来较快。 1 查看jvmclient模式还是server模式 cmd命令输入java -vsersion命令查看’ 64位的只支持server模式 2:可以在jre中查看 具...
Java资料之JVM
宅羽的博客
11-07 151
JVM参数说明: -server 一定要作为第一个参数,启用JDK的server版本,在多个CPU时性能佳 -Xms java Heap初始大小。 默认是物理内存的1/64。 -Xmx java heap最大值。建议均设为物理内存的80%。不可超过物理内存。 -Xmn java heap最小值,一般设置为Xmx的3、4分之一。 -XX:PermSize 设定内存的永久保存区初始大小,缺省值为6...
float与double类型参数区别_JVM学习笔记之Client Server端区别 - Java老K
weixin_39827798的博客
11-14 142
java -version 命令大家都用过,大部分就是看下jdk版本或检查下环境变量的设置,但最后一行的信息也挺重要,如下图所示:Server VM表示我们的虚拟机类型,mixed mode表示虚拟机以混合模式工作。一. 虚拟机先说下本篇文章的内容都是基于HotSpot虚拟机。我们熟知的Java虚拟机是一种规范标准,有多种实现,比如HotSpot虚拟机就是JVM的一种实现,也是目前使用范围最广的J...
JVMClient模式与Server模式
aw4269的博客
08-09 276
JVM有两种运行模式ServerClient。 使用java -version就能查看当前处于什么模式。 JVM Server模式与client模式启动,最主要的差别在于:-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升。JVM如果不显式指定是-Server模式还是-client模式,JVM能够根据下列原则进行自动判断(适用于Java5版本或者Jav...
jvmclientserver工作模式
PacosonSWJTU的博客
02-13 1230
【README】 JVM Server模式与client模式启动,最主要的差别在于: -Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升. 原因是:当虚拟机运行在-client模式的时候,使用的是一个代号为C1的轻量级编译器, 而-server模式启动的虚拟机采用相对重量级,代号为C2的编译器. C2比C1编译器编译的相对彻底,,服务起来之后,性能更高.   java -version 可以直接查看出你使用的是client还是 server ​ 【1】client
深入理解Java命令行运行参数client vs server模式与-classpath详解
在Windows中,默认采用-client模式,若需server模式,则需添加"-server"参数。在Linux和Solaris上,服务器模式默认启用。 另一个基本参数是-hotspot,这个选项在JDK 1.4之前使用,但后来被-client所替代。-...
写文章

热门文章

  • javaparser_JavaParser生成,分析和修改Java代码 557437
  • javaparser_JavaParser入门:以编程方式分析Java代码 136876
  • java.lang.ClassNotFoundException:如何解决 73633
  • JavaParser入门:以编程方式分析Java代码 48978
  • JavaParser入门:以编程方式分析Java代码 35819

最新文章

  • jmc线程转储_查找线程转储中的异常和错误
  • 托管 非托管_如何在托管Kubernetes上还原Neo4J备份
  • MavenSelenium测试自动化教程
2020年12907篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家园林景观雕塑灯塔玻璃钢雕塑兴化玻璃钢雕塑订做珠海玻璃钢雕塑躺椅黑龙江专业的玻璃钢花盆供应商台州多彩玻璃钢雕塑生产厂家玻璃钢马雕塑设计哪家好美陈软装商场图片宜春玻璃钢花盆晋城玻璃钢不锈钢雕塑金昌城市玻璃钢雕塑订做成都商场美陈资讯江浙沪玻璃钢雕塑定制鹰潭佛像玻璃钢雕塑设计玻璃钢雕塑加工机器山东个性化玻璃钢雕塑优势平凉玻璃钢动物雕塑公司附近不锈钢玻璃钢卡通雕塑设计抚州多彩玻璃钢雕塑市场瓦房店玻璃钢雕塑厂梁园玻璃钢雕塑设计齐齐哈尔玻璃钢雕塑制作大型玻璃钢雕塑摆件价钱古代玻璃钢雕塑要求天津户外玻璃钢雕塑订做价格玻璃钢不锈钢雕塑加工邢台玻璃钢仿真水果雕塑开封室外玻璃钢卡通雕塑公司吉林卡通玻璃钢雕塑加工湛江玻璃钢地貌图雕塑广西玻璃钢海豚雕塑定制香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化