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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小米3显示sim卡无服务器,小米手机无服务怎么解决

原标题:小米手机无服务怎么解决方法一:1.第一步是检查电话卡是否正确插入卡槽中。这种情况也会发生很长时间。如果未正确插入卡插槽,则将导致无法维修。2.要注意的第二件事是,如果所购买的小米手机是电信版的,那么插入…

cad服务器手动改自动,几百块就能手动改自动? 怎样省钱换来方便

现在市场上可以手动改自动挡是真的吗?今日市场上出现的手动挡升级自动挡的技术,不少网友询问这个手动挡改自动挡技术,手动改自动挡真的吗?记者带着疑问进行各方面搜索和调查。经过调查,记者终于了解到市场上真的有这种技术,可以…

opencv检测相交点_OpenCV特征点检测------ORB特征

ORB是是ORiented Brief的简称。ORB的描述在下面文章中:Ethan Rublee and Vincent Rabaud and Kurt Konolige and Gary Bradski, ORB: an efcient alternative to SIFT or SURF, ICCV 2011没有加上链接是因为作者确实还没有放出论文,不过OpenCV2.3RC中已经…

服务器物理部署拓扑图,【网络】叶脊(Spine-Leaf)网络拓扑下全三层网络设计与实践(五)-物理服务器路由方案及配置...

5.1 本节目标理解物理机的业务ip之间的通信过程;了解如何在leaf交换机上配置业务ip的静态路由;了解如何在物理机上配置业务ip及其他相关配置项;5.2 拓扑结构本节拓扑结构与上节相比没有变化,如下图:5.3 物理机业务网络…

axios队列 vue_vue axios全攻略

不再继续维护vue-resource,并推荐大家使用 axios 开始,axios 被越来越多的人所了解。本来想在网上找找详细攻略,突然发现,axios 的官方文档本身就非常详细!!有这个还要什么自行车!!所…

探测服务器操作系统,探测服务器操作系统工具

探测服务器操作系统工具 内容精选换一换lib库获取方式不同,编译环境配置方法不同,下面分别介绍。根据Mind Studio安装服务器操作系统及架构与硬件环境是否相同,编译环境分为如下两种场景:若Mind Studio安装服务器操作系统及架构与…

Java Web App体系结构

我曾经利用Servlet,JSP,JAX-RS,Spring框架,Play框架,带有Facelets的JSF和一些Spark框架。 以我的拙见,所有这些解决方案都远非面向对象和优雅的。 它们都充满了静态方法,无法测试的数据结构和肮…

Mono for Android 篇二 使用Spinner 实现下拉列表读取Browser.BookmarksUri

http://www.cnblogs.com/ivanyb/archive/2013/03/05/2944818.html 1、首先在VS2010里面创建一个Android Application 简单说明一下解决方案中各个文件的作用: AndroidManifest.xml:项目环境配置文件,指明了使用Android SDK的版本,…

mysql磁盘临时表清理_mysql 创建大量磁盘临时表

发现 mysql 中创建的临时表基本都是磁盘临时表,对此进行排查。最后为临时表机制说明。通过查看 mysql 状态变量,看到创建的临时表基本都是磁盘临时表。查看临时表配置,默认配置 16M,配置并没有问题。创建两个表,做一个…

吃鸡服务器8月10日维护,《黑潮之上》2021年8月10日不停服维护公告

在黑潮之上手游中2021年8月10日更新了哪些有趣的内容呢?想了解本次更新情况如何的小伙伴们,接下来就让我们一起来看一下吧!各位接触者:为了提供良好的游戏体验,保证服务器稳定运行,《黑潮之上》将于2021年8月10日早5:0…

资格赛:题目1:同构

时间限制:2000ms单点时限:1000ms内存限制:256MB描述 给定2个树A和B,保证A的节点个数>B的节点个数。 现在你需要对树A的边进行二染色。 一个好的染色方案,指不存在一个树A中的连通块,同时满足以下2个条件 1. 其中只有同色的边 2. 和B同构。…

java 获取mysql链接_Java中如何获取mysql连接的3种方法总结

前言本文主要来说说三种 Java 中获取 mysql 连接的方式,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:第一种:传统的连接方式;第二种:读取配置文件方式;第三种&…

JavaScript学习总结(六)——JavaScript判断数据类型总结

最近做项目中遇到了一些关于javascript数据类型的判断处理,上网找了一下资料,并且亲自验证了各种数据类型的判断,在此做一个总结吧! 一、JS中的数据类型 1.数值型(Number):包括整数、浮点数。 2…

material 项目_Web开发必备的 10 个开源项目,不用自己亲自造轮子!

来自:Java and Python君Web 开发中几乎的平台都需要一个后台管理,但是从零开发一套后台控制面板并不容易,幸运的是有很多开源免费的后台控制面板可以给开发者使用,那么有哪些优秀的开源免费的控制面板呢?我在 Github 上…

SVN部署(本地)

1.安装TortoiseSVN 2.建立Repository。在F:/下建立文件夹SVN_NATIVE_REPOSITORY, —— 》 3.在其他任意路径建立任意名称的路径,这里为D:\MSVC Project\SVN_WORK,确保该文件夹为空 右键单击,点击SVN Checkout, 第一行 …

mysql sqlserver schema_MySQL数据库数据迁移到SQLserver

最近因工作需要,需要将mysql数据库迁移到sqlserver,仅仅是数据迁移,因此相对比较简单。对于mysql迁移到sqlserver,我们需要使用到mysql odbc驱动,然后透过sqlserver链接服务器的方式来访问mysql。具体见下文描述。一、…

mysql客户端安装错误_windows下mysql 5.7以上版本安装及遇到的问题

(原)早些前用window安装mysql挺简单的,一个安装程序,一路下一步。2006的5.0版本,确实太早了点。于是官网上又下了一个版本,windows也是提供了二个版本Installer(安装)版和Archive(文档)版。Installer版本的后缀是.msi,…

sklearn中eof报错_sklearn中的数据预处理和特征工程

小伙伴们大家好~o( ̄▽ ̄)ブ,今天我们看一下Sklearn中的数据预处理和特征工程,老规矩还是先强调一下,我的开发环境是Jupyter lab,所用的库和版本大家参考:Python 3.7.1(你的版本至少要…

sql显示前10行数据_SPL 简化 SQL 案例详解:计算各组前 N 行

取出各组的前N行数据是较常见的运算,比如:每个月每种产品销量最高的五天是哪五天,每位员工涨薪最多的一次是哪次,高尔夫会员成绩最差的三次是哪三次,等等。在SQL中,这类运算要用窗口函数以及keep/top/rownu…

4月21日会议总结(整理—祁子梁)

会议成果: 1.今天我们确定了软件版本的时间alphe版在12周做出来,在我们内部测试基本通过。 bate版在13周发布和其他组作交换测试,在14周release版发布并给其他人使用体验准备15周的演讲。 2.同时确定了部分功能实现顺序,”谁是卧底…