- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(JAVA虚拟机性能参数调优指导书
Java虚拟机性能参数调优指导书
(仅供内部使用)
目 录
1 概述 6
2 JAVA虚拟机运行机制概览 6
2.1 运行时分析 6
2.2 垃圾收集和线程同步 8
3 JAVA虚拟机参数分类说明 9
3.1 Java虚拟机标准参数 9
3.2 Java虚拟机扩展参数 11
4 JAVA应用性能测试调优经验总结 14
4.1 GC调优参数的使用 14
4.2 JIT调优参数的使用 15
4.3 Java线程调优参数的使用 15
5 结束语 16
6 参考文献 16
表目录
表1 JVM 标准参数集 11
表2 JVM 扩展参数集 11
表3 JVM GC/Hotspot相关参数集 13
表4 JVM 性能统计参数集 14
Java虚拟机性能参数调优指导书
关键词:Java、垃圾收集、虚拟机、即时编译
摘 要: 随着JAVA在应用系统级的项目开发中的使用越来越广泛,虚拟机、垃圾收集、热点编译、J2EE等新技术层出不穷,JAVA作为系统级开发的一个选择的优势也越来越明显,在此同时其不能完全编译、垃圾收集等与生俱有的特征也使得JAVA备受争议的“慢”得到更多的关注。本文通过对JAVA虚拟机的运行机理的分析,以及JAVA虚拟机参数使用说明等描述,试图使读者能够更好的运行他的基于JAVA的应用系统,以最小的代价换取最大的收益。
缩略语清单:
缩略语 英文全名 中文解释 JAVA SUN公司发明的一种语言 JVM Java Virtual Machine JAVA虚拟机 GC Garbage Collection 垃圾收集 HotSpot Java虚拟机内部的一种热点编译技术 JIT Just-In-Time 即时编译技术
概述
Java在大行其道的同时也在为自己与生俱来的缺陷不断的努力着,我们有理由相信Java的开发设计者们真是一群天才。构成Java技术的基石就是JVM的虚拟机技术,这时的Java已经不再是一门简单的语言,而是语言、开发包JDK与虚拟机的完美结合,而这里面的虚拟机则是融合了编译技术、CPU技术的Java存在的基础所在。既然那么多的优秀的人为提升虚拟机性能做了那么多的工作,我们有什么理由不去充分利用这些宝贵的资源呢?本文就是试图从原理分析到参数应用上来帮助读者更大的发挥Java虚拟机的性能极限,使这样一个优秀的产品更好地为我们服务。
JAVA虚拟机运行机制概览
运行时分析
首先让我们来看看所谓的Java虚拟机在运行起来后是什么样子的,从外面来看一个Java虚拟机的运行实例就是一个运行着的Java进程,Java进程在启动过程中做了如下工作,一、根据环境变量的设置或者Java进程的命令行参数将Java Class字节码加载到内存中,这样的Java字节码是Java虚拟机所能够识别的虚拟机指令的集合,Java虚拟机在解释执行字节指令的同时,根据某些代码的使用频率,将其中一部分字节码翻译成机器能够识别的二进制指令保存在内存中,在以后对这部分代码的调用,则由Java虚拟机的代码控制CPU直接执行内存中的这部分二进制指令,这个就是Java虚拟机的热点编译技术。而在早期的Java虚拟机实现中是采用全部字节程序解释执行的方式,后来发展了Java静态编译技术,这种技术是在Java程序编译成字节码后,由一个本地编译器将这些字节码编译成二进制可执行文件,这种编译技术不利于程序的移植。再后来发展的Java的动态编译技术,这时的编译过程是在Java装载字节码文件时进行的,而此时的问题是Java在启动时需要花费很长的时间来编译这些字节码。直到最后流行的Hotspot技术的出现,此时编译仅仅运行于少部分代码。按照80/20的原则,程序的百分之80的时间仅仅运行其百分之20的代码,这样一个能够平衡启动时间、移植性的中间方法解决了人们的大部分问题。
之后,让我们看看Java虚拟机的内部体系结构,从下面的体系机构图来看,Java的Class字节码文件经由类加载子系统加载到内存中时,虚拟机根据文件内容将类的方法和数据加载到称为方法区的地方,堆是用来为运行时类实例提供存放场所的地方,这样的堆也称之为对象堆空间。而Java栈和PC计数器则是为了Java线程而设计的,每一个Java线程一旦创建,它都将得到一个属于他自己的PC计数器(程序计数器指针,类似于CPU中的IP指令指针计数器)以及一个线程栈,在新版本Java Hotspot VM中是没有本地方法栈和线程栈之分的,只有一个线程栈的模块。这样每个线程的运行都是在属于自己栈空间内的,而所有的线程则共享着一个堆空间。当然在线程实现上不同的Java虚拟机的内部实现可能各有不同,有的自是直接将Java线程和操作系统内核线程绑定起来的,在虚拟机进程内部创建一个Java线
您可能关注的文档
最近下载
- 2025-2026学年人教版英语八年级上册UNIT 8 单元综合评估卷(含答案及听力原文,无听力音频).doc VIP
- 常用电工仪器仪表使用方法PPT课件.pptx VIP
- 2025年广东省华医网公需课考题答案—人工智能赋能制造业高质量发展.docx VIP
- 基于核心素养的初中生物实验教学设计研究报告教学研究课题报告.docx
- 物流园安全生产三项制度(安全生产责任制、制度、操作规程)汇编.pdf VIP
- 2019年山东省广播电视技术能手竞赛(网络安全)答案.doc VIP
- (9月3日)铭记历史,吾辈自强——纪念抗日战争胜利80周年初中主题班会课件.pptx VIP
- 07 保护及故障信息管理子站技术规范书(通用).doc
- 2025-2026学年小学信息科技湘教版2024三年级上册-湘教版(2024)教学设计合集.docx
- 第一届全国技能大赛贵州选拔赛砌筑项目技术文件1.docx VIP
文档评论(0)