`
paddy.w
  • 浏览: 506141 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JRockit 性能优化参数

阅读更多
        转自:http://speed847.iteye.com/blog/373379。在此表示感谢,并备份一下。

        一.JRockit调优简介

        JRockit是一个自适应的JVM,它能够自动调整自己去适应底层硬件,因此对它的调优主要集中在一些需要人工干预的参数上,比如说:需要划分多少RAM给JRockit使用等。JRockit有一组非标准的-X启动选项,我们可以用它来调节 JVM。JRockit有两组主要的子系统可以被优化--内存管理系统(包括垃圾回收)和线程系统。在内存管理子系统方面,有很多调优的工作可以做。

        二.Tuning WebLogic JRockit JVM

        1.设置初始堆尺寸
可以通过-Xms:<size>m来设置初始堆大小,如果-Xmx的值小于128MB,则-Xms缺省取值为16MB;如果-Xmx设置大于128MB,则-Xms缺省值为物理内存的25%,最大不超过64M。例子:
        -Xgc:gencon -xms:64m -Xmx:64m myClass
        2.设置最大堆尺寸
可以通过-Xmx:<size>m来设置最大堆尺寸。在IA32构架下,由于操作系统给每个进程的最大内存寻址空间为1.8G,因此最大堆尺寸不能超过1.8G。在IA64构架下,就没有1.8G的限制。
        如果你的JAVA应用程序在运行时出现了Out of memory的错误,你就需要调大最大堆尺寸。如果没有设置最大堆尺寸,则缺省值为:
        a. 如果设置了-Xgc:gencopy,由最大堆尺寸是min{400, 物理内存*75%};
        b. 如果没有设置-Xgc:gencopy,由最大堆尺寸是min{1536, 物理内存*75%};
        最好手工把最大堆尺寸设置为物理内存(1024M)的75%:
        -Xgc:gencon -xms:64m -Xmx:768m myClass
        3.设置Nursery的尺寸
        可以使用-Xns:<size>来设置Nursery的尺寸,我们要在保证垃圾回收停顿时间(garbage collection-pause)尽可能短的同时,尽量加大Nursery的尺寸,这在创建了大量的临时对象时尤其重要。缺省值为:
        a. 对于-Xgc:gencopy,缺省的Nursery大小为320KB/CPU,对于10个CPU的系统来说,Nursery大小为3200KB(3.2M)
        b. 对于-Xgc:gencon,缺省的Nursery大小为10M/CPU,对于10个CPU的系统来说,Nursery大小为100M
        4.定义内存空间的清理时机
        可以使用-Xcleartype:<gc|local|alloc>来定义已经被垃圾回收的内存空间在什么时候可以被清理,支持以下三种方式:
        a. gc,在垃圾回收的同时清理内存;
        b. local,在分配了一块thread-local区域时清理内存,仅在把参数-Xallocationtype设置成local时才有用;
        c. alloc,在这块内存被分配给其它对象时清理。在IA64上目前还不支持。
        缺省值为:
        a. IA32上缺省值为alloc
        b. IA64上缺省值为gc
        5.定义线程分配的类型
        可以使用-Xallocationtype:<global|local>来定义线程分配的类型。
        a. global,在最大堆尺寸比较小时(小于128M)或者应用程序大量使用了线程时使用。
        b. local,在最大堆尺寸比较大时(大于128M)或者应用程序少量使用了线程时使用。
        缺省值:
        a. 如果设置了-Xgc:gencopy,缺省值为global
        b. 如果设置了-Xgc:siglecon,-Xgc:gencon和-Xgc:parallel,缺省值为local
        6.定义线程栈尺寸
        可以使用-Xss<size>[k|K][m|M]来定义线程栈大小。最小线程尺寸定义如下:
        a. thin threads:最小线程栈尺寸为8K,缺省为64K;
        b. native threads:最小线程栈尺寸为16K
        如果-Xss设置小于最小值,则自动使用最小值。
        缺省值:
        a. IA32系统,WIN32:64K,LINUX32:128K
        b. IA64系统,WIN64:320K,LINUX64:1M

        二.Basic Tuning Tips and Techniques

        尽管JRockit提供了一组缺省的OOTB配置选项,但最好根据实际应用情况来对JRockit作一些调整。
        1.决定你要在哪方面调优
        要考虑的因素有:
        a. 要为JRockit分配多少内存空间;
        b. 你要调优的目的是什么,是要得到更好的响应性还是更好的性能;
        2.设置堆尺寸
        对于堆尺寸来说,当然是越大越好了。如果设得不够大,就会造成Out-of-memory和内存分页错。如果同时运行了多个应用程序,建议把最小和最大堆尺寸设置成一样大。
        3.在高响应性方面的调优
        要得到更好的响应性能,应该设置
        a. 使用并发垃圾回收器。-Xgc:gencon
        b. 设置初始和最大堆大小。-Xms512m,-Xmx768m,由于使用了并发垃圾回收器,所以堆大小不会造成长时间的等待。
        c. 设置nursery尺寸。如果用到了大量的临时对象,则需要适当的调大nursery尺寸。调大nursery尺寸会导致垃圾回收的停顿时间加长,因此要注意,确保垃圾回收的停顿时间在可忍受的范围内,这个停顿时间可以通过设置-Xgcpause来查看。
        4.在高性能方面的调优
        如果要得到更好的性能,你应该:
        a. 选用并行垃圾回收器,由于并行垃圾回收器不使用nursery,因此你不必再设置-Xns,方法是加上-Xgc:parallel
        b. 把初始和最大堆尺寸设置调到尽可能的大。方法是-Xms512m, -Xmx768m。
        5.分析垃圾回收和停顿时间
        a. 使用-Xgcreport生成报表,显示垃圾回收的统计信息,从中可以看出你是不是最有效地使用了垃圾回收器。
        b. 使用-Xverbose:memory来显示在运行期间每一次垃圾回收的停顿时间。本选项仅用于调试,会产生大量的控制台输出。
        6.调整线程选项
        当大量地使用了线程时(超过100个),需要调整线程选项:
        a. 使用thin线程选项。-Xthinthreads。瘦线程模式在LINUX下非常有效。注意:瘦线程在JRockit中只是一个试验选项,不推荐广泛使用;
        b. 关闭本地分配线程的选项。-Xallocationtype:global。每个本地线程区都要消耗大约2K的内存,如果大量地使用了线程,本地线程不但会造成内存空间浪费,而且还会造成堆碎片。使用全局线程机制会减少堆碎片,但在内存分配方面速度要慢一些。
        7.分析并改善应用程序设计
        找出瓶颈方法:
        a. 使用Intel VTune工具;
        b. 使用-Xjvmpi:allocs=off,monitors=off,entryexit=off选项。

        三.Command Line Options by Name

        启动JRockit时,可以带一些-X选项,这些选项是非JVM标准的,专门用于配置JRockit的性能。
选项描述
-X显示扩展Java选项
-Xallotype-Xallocationtype可取值global和local,定义使用本地线程还是全局线程。
-Xbootclasspath指定类搜索路径,可以是ZIP和JAR文件,以;或:分隔
-Xcleartype定义内存清理时机,可取值gc, local, alloc。gc表示在垃圾回收时清理内存;local表示时分配一块local线程区时清理;alloc表示内存区要被分配给其它对象时清理
-Xgc选择要使用的垃圾回收器的类型,可取值:gencopy:generational copyingsinglecon:single spaced concurrent,单空间并发gencon:generational concurrentparallel:parallel如果-Xmx小于128M,缺省使用gencopy,否则使用gencon
-Xgcpause打印由垃圾回收器造成的停顿时间
-Xgcreport打印垃圾回收报表
-Xjvmpi是否允许JVMPI事件,这些事件有:entryexit(缺省ON)allocs(缺省ON)monitors(缺省ON)arenasdelete(缺省OFF)
-Xmanagement激活JVM中的管理服务器,在JVM的管理控制台能连接到它之前,必须先激活。
-Xms设置初始堆大小,单位有K、M、G
-Xmx设置最大堆大小,单位有K、M、G
-Xnativethreads使用本地线程系统,这是缺省选项
-Xnoclassgc禁止对类作垃圾回收
-Xnohup告诉JRockit,忽略CTRL_LOGOFF_EVENT和SIGHUP事件
-Xns设置nursery尺寸,单位有K、M、G
-Xss设置线程栈尺寸,单位有K、M、G
-Xthinthreads使用JRockit的高性能线程系统,在IA64上不可用。
-Xverbose让JRockit打印更多的信息,可选的参数有:codegen、cpuinfo、gc、load、memory、Opt
-Xverify作完整的bytecode一级的校验
分享到:
评论

相关推荐

    简单的基于 Kotlin 和 JavaFX 实现的推箱子小游戏示例代码

    简单的基于 Kotlin 和 JavaFX 实现的推箱子小游戏示例代码。这个游戏包含了基本的地图布局、玩家控制角色推动箱子到目标位置的功能,不过目前还只是一个简单的控制台版本,你可以根据后续的提示进一步扩展为图形界面版本并添加推流相关功能(推流相对复杂些,涉及到网络传输和流媒体协议等知识,需要借助如 FFmpeg 或者专门的流媒体库来实现,这里先聚焦游戏本身的逻辑构建)

    基于simulink建立的PEMFC燃料电池机理模型(国外团队开发的,密歇根大学),包含空压机模型,空气路,氢气路,电堆等模型 可以正常进行仿真

    基于simulink建立的PEMFC燃料电池机理模型(国外团队开发的,密歇根大学),包含空压机模型,空气路,氢气路,电堆等模型。 可以正常进行仿真。

    基于springboot的高校教学档案管理系统设计与实现源码(java毕业设计完整源码+LW).zip

    Web端功能1.文件分类管理(文件、图片和视频),可以检索文件(按照分类查看,也可以根据名字检索),可以删除和添加文件,文件可以下载,图片和视频可以在线查看播放2.文件有个物理位置的属性,例如“A柜14排”3.文件可以被用户借阅,可以查看到文件的借阅状态。4.可以查看借阅历史列表信息。(任何借阅的记录都保存下来,用列表的方式展现出来)。5.目标角色分教师、教学秘书、专业负责人、教学院长及管理员6.角色教师通过系统提供的界面,(1)输入教学成果,包括项目、论文、著作封面、获奖证书等,提供成果作证材料,秘书审核后再提交给专业负责人及教学院长审核;(2)输入教学资料,包括教学日历、教学大纲、考试考核方法改革申报表、课程试卷及答案等,上传图片或者PDF文档,提交给教学秘书、专业负责人及教学院长审核。7.教学秘书审核教师提交的教学成果,依据作证材料逐条审核,然后提交给专业负责人及教学院长再作审核。8.专业负责人和教学院长相继审核,给出通过意见或者退回。9.管理员角色负责管理维护系统内部教师信息。10.系统界面设计美观,具有较高的易用性,能够进行角色权限控制...

    物流工厂往复式升降机2018可编辑全套技术资料100%好用.zip

    物流工厂往复式升降机2018可编辑全套技术资料100%好用.zip

    基于USuperStar酒店管理系统(java web课程设计)、全部资料+详细文档+高分项目.zip

    【资源说明】 基于USuperStar酒店管理系统(java web课程设计)、全部资料+详细文档+高分项目.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    “社区管理数字化”:小区物业管理系统技术架构

    在信息技术飞速发展的今天,我们正生活在一个信息大爆炸的时代。随着计算机技术的进步和移动终端的普及,国内信息技术已经走在了世界前列。在这样的背景下,传统的手工信息处理方式已经无法满足现代社会的需求,必须依靠计算机技术来提高信息处理的效率。 本次开发的小区物业管理系统采用Java技术,旨在通过计算机化管理提升小区物业信息管理的效率。系统实现了报修管理、房屋管理、收费管理、停车位管理、投诉管理和用户管理等多项功能。 小区物业管理系统的计算机化处理,确保了数据传输的即时性,无论是数据的获取还是输入,都能迅速反馈,极大提升了工作效率。同时,系统采用MySQL数据库,为数据提供了安全可靠的存储解决方案。

    【C语音期末/课程设计】银行存取款管理系统(DevC项目)

    设计一个银行存取款管理系统,能够输入和查询客户存款取款记录。在客户文件中,每个客户信息是一条记录,包括编号、客户姓名、支取密码、客户地址、客户电话、账户总金额;在存取款文件中,每次存取款是一条记录,包括编号、日期、类别、存取数目、经办人。类别分为取款和存款两种。本系统能够输入客户存款或取款记录;根据客户姓名查询存款和取款记录

    【雷达跟踪】基于matlab雷达信号目标运动轨迹跟踪(含距离和速度误差)【含Matlab源码 10015期】.zip

    Matlab领域上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    VBS超精品代码合集0606~0902chm版最新版本

    在脚本之家的VBS栏目中,我们精心培育并推广了这一资源,使其逐渐被公众所熟知。我们所提供的代码资源,涵盖了从基础到高级技巧的广泛知识,是长期从网络收集和整理的结果,极具收藏价值,是学习VBS不可或缺的平台。 由于过去在查找和分类这些资料时存在不便,我们对内容进行了重新整理。在批处理之家站长的协助下,我们将这些资料转换成了更易于使用的CHM格式。尽管偶尔会出现乱码,且部分VBS代码可能会被杀毒软件误报,但我们确保这些资料是安全可用的。 我们对大家的支持表示衷心的感谢,并鼓励您访问脚本之家VBS栏目的最新内容。

    基于改进A*算法融合DWA算法的机器人路径规划MATLAB仿真程序(含注释) 包含传统A*算法与改进A*算法性能对比?改进A*算法融合DWA算法规避未知障碍物仿真 改进A*算法做全局路径规划,融合动

    基于改进A*算法融合DWA算法的机器人路径规划MATLAB仿真程序(含注释) 包含传统A*算法与改进A*算法性能对比?改进A*算法融合DWA算法规避未知障碍物仿真。 改进A*算法做全局路径规划,融合动态窗口算法DWA做局部路径规划既可规避动态障碍物,又可与障碍物保持一定距离。 任意设置起点与终点,未知动态障碍物与未知静态障碍物。 地图可更改,可自行设置多种尺寸地图进行对比,包含单个算法的仿真结果及角速度线速度姿态位角的变化曲线,仿真图片丰富

    最小误差图像分割matlab代码

    阈值分割是常见的直接对图像进行分割的算法,根据图像像素的灰度值的不同而定。对应单一目标图像,只需选取一个阈值,即可将图像分为目标和背景两大类,这个称为单阈值分割;如果目标图像复杂,选取多个阈值,才能将图像中的目标区域和背景被分割成多个,这个称为多阈值分割,此时还需要区分检测结果中的图像目标,对各个图像目标区域进行唯一的标识进行区分。阈值分割的显著优点,成本低廉,实现简单。当目标和背景区域的像素灰度值或其它特征存在明显差异的情况下,该算法能非常有效地实现对图像的分割。阈值分割方法的关键是如何取得一个合适的阈值,近年来的方法有:用最大相关性原则选择阈值的方法、基于图像拓扑稳定状态的方法、灰度共生矩阵方法、最大熵法和峰谷值分析法等,更多的情况下,阈值的选择会综合运用两种或两种以上的方法,这也是图像分割发展的一个趋势。

    机器学习(预测模型):英特尔公司历史股票数据的数据集

    是一个包含英特尔公司(Intel Corporation,股票代码:INTC)从1980年至2024年历史股票数据的数据集。这个数据集提供了每日的股票价格信息,包括开盘价、最高价、最低价、收盘价以及调整后的收盘价,同时还记录了每天的交易量。这些数据对于分析英特尔的市场表现、股票价格趋势以及进行金融分析和预测模型的构建非常有用。 数据集的特点包括: 时间跨度长:覆盖了超过40年的时间,能够提供长期的股票市场趋势分析。 数据详细:包含了每日的股价和交易量,有助于进行深入的技术分析。 调整后的价格:提供了调整后的收盘价,考虑了股票分割、股息和其他公司行为,使得数据更加准确。 来源可靠:数据来源于Yahoo Finance,这是一个广泛认可的获取历史金融数据的平台。 使用这个数据集,分析师和投资者可以进行多种分析,如时间序列分析、股票价格预测和财务分析。这些分析有助于理解英特尔作为半导体行业领导者的发展和表现,以及其在个人电脑技术背后的推动作用。数据集的长期视角也为研究市场趋势和投资决策提供了宝贵的信息。

    (180339652)开源基于51单片机的多功能智能闹钟设计

    内容概要:包含温湿度、空气质量、用户交互菜单等功能设计的51单片机智能闹钟 适用人群:对51单片机有基础的了解,具备一定的C语言编程基础,学生与单片机爱好者 能学到什么:仅做借鉴参考,相关设计的思路,一些基础的单片机编程方法。 阅读建议:内置较详细注释可供理解查看,仍有许多不足之处,仅做参考,多多指教。。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。

    基于JavaEE课程设计Javaweb课程设计基于spring Boot + Mybatis Plus + Vue + Android原生,前后端分离。附带设计

    【资源说明】 基于Java EE 课程设计 Java web 课程设计 基于spring Boot + Mybatis Plus + Vue + Android原生,前后端分离。附带设计报告、UML建模,团队协作赛鸽数据管理系统、全部资料+详细文档+高分项目.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    基于springboot的医疗服务系统源码(java毕业设计完整源码+LW).zip

    项目均经过测试,可正常运行! 环境说明: 开发语言:java JDK版本:jdk1.8 框架:springboot 数据库:mysql 5.7/8 数据库工具:navicat 开发软件:eclipse/idea

    money:一个Python编写的货币类库 带有可选的 CLDR 后端本地化格式,提供可扩展的货币兑换解决方案

    简介:money 是一个专为 Python 设计的货币类库,旨在帮助开发者更方便、更精确地处理货币相关的操作。 核心功能 精确的货币表示与计算:使用decimal类型来处理货币金额,避免了使用浮点数进行货币计算时可能出现的精度丢失问题,从而确保计算结果的高精度,适用于对精度要求极高的金融交易、电子商务、账单等领域. 多货币支持:内置了符合 ISO 4217 标准的世界各国货币数据,支持多种货币的符号、单位、汇率等功能,可轻松创建不同货币类型的货币对象,并对其进行各种数学运算,如加、减、乘、除等,且能确保精度的正确性,适合需要进行国际化货币处理的应用. CLDR 后端本地化格式:提供了可选的 CLDR(Common Locale Data Repository)后端本地化格式功能,通过format()方法,可根据不同的地区设置,将货币金额格式化为符合当地习惯的字符串形式,如$1,234.57(美国格式)、1.234,57\xa0$(西班牙格式)等,增强了货币显示的本地化和国际化适应性. 可扩展的货币兑换解决方案:通过 “安装” 实现了抽象基类。

    基于springboot的在线考试系统源码(java毕业设计完整源码+LW).zip

    管理员功能需求: 管理员登陆后,主要模块包括首页、个人中心、用户管理、教师管理、课程信息管理、班级信息管理、试题管理、在线试题管理、考试管理等功能。 用户功能需求: 用户登陆后,主要模块包括首页、个人中心、课程信息管理、班级信息管理、考试管理等功能。 环境说明: 开发语言:java JDK版本:jdk1.8 框架:springboot 数据库:mysql 5.7/8 数据库工具:navicat 开发软件:eclipse/idea

    (6755822)基于TCP的VC++聊天室

    AppWizard has created this TcpClient application for you. This application not only demonstrates the basics of using the Microsoft Foundation classes but is also a starting point for writing your application. This file contains a summary of what you will find in each of the files that make up your TcpClient application. TcpClient.dsp This file (the project file) contains information at the project level and is used to build a single project or subproject. Other users can share the project (.dsp)

    (178163848)基于MATLAB GUI的指纹识别【程序,GUI】.7z

    本项目是自己做的设计,有GUI界面,完美运行,适合小白及有能力的同学进阶学习,大家可以下载使用,整体有非常高的借鉴价值,大家一起交流学习。该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。 项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。

    两穴tray盘自动上下料设备sw17可编辑全套技术资料100%好用.zip

    两穴tray盘自动上下料设备sw17可编辑全套技术资料100%好用.zip

Global site tag (gtag.js) - Google Analytics