摘要
作为曾经的三大主流Java虚拟机之一,JRockit展示了强大的伸缩性和高劲的性能,现在虽已被内置于Oracle融合中间件中,但JVM原理以及JMC工具等内容是相通的。
本书由JRockit核心开发人员根据其十余年与Java打交道的经验编写而成,深入JVM内部,详尽剖析了Java虚拟机原理,对现在的Java开发人员监听、诊断、配置和增强Java应用程序的性能仍有很强的参考价值。
JRockit权威指南 深入理解JVM 作者:(瑞士)马库斯·希尔特,(瑞典)马库斯·拉杰格伦
JRockit权威指南 深入理解JVM 出版社:人民邮电出版社
JRockit权威指南 深入理解JVM 内容简介
本书面向所有以Java编程语言为工作中心的开发人员和系统管理员,分为3大部分。第一部分着重介绍了JVM和自适应运行时的工作原理,并以JRockit为例专门介绍到底什么是好的Java代码。第二部分介绍JRockit Mission Control套件的具体功能,以及如何使用JRockit Mission Control套件来查找应用程序的性能瓶颈。第三部分介绍Java发展方向。
JRockit权威指南 深入理解JVM 目录
前言
第1章 起步
第2章 自适应代码生成
第3章 自适应内存管理
第4章 线程与同步
第5章 基准测试与性能调优
第6章 JRockit Mission Control套件
第7章 Management Console
第8章 JRockit Runtime Analyzer
第9章 JRockit Flight Recorder
第10章 Memory Leak Detector
第11章 JRCMD
第12章 JRockit Management API
第13章 JRockit Virtual Edition
附录A 参考文献
附录B 术语表
JRockit权威指南 深入理解JVM 精彩文摘
1.2 将应用程序迁移到JRockit
本书中,JRockit JVM的安装目录以JROCKIT_HOME指代,将之设为系统变量可以使操作更简便。安装完成后,顺便将JROCKIT_HOME/bin目录添加到系统环境变量PATH路径中,并更新应该迁移到JRockit的Java应用程序的脚本。建议读者将环境变量JAVA_HOME的值设置为JROCKIT_HOME指代的目录。大部分情况下,JRockit都可以直接替代其他JVM,但某些启动参数需要调整,例如某些控制具体垃圾回收行为的参数,这在不同JVM厂商之间有较大差别。其他一些比较通用的参数,例如设置堆大小的最大值,在设置的时候是相同的。
更多有关将应用程序迁移到JRockit JVM的信息,请参见JRockit在线文档中“Migrating Applications to the Oracle JRockit JDK”一章的内容。
1.2.1 命令行选项
在JRockit JVM中,主要有3类命令行选项,分别是系统属性、标准选项(以-X开头)和非标准选项(以-XX开头)。
系统属性
设置JVM启动参数的方式有多种。以-D开头的参数会作为系统属性使用,这些属性可以为Java类库(如RMI等)提供相关的配置信息。例如,在启动的时候,如果设置了-Dcom.jrockit.mc.debug=true参数,则JRockit Mission Control会打印出调试信息。不过,R28之后的JRockit JVM版本废弃了很多之前使用过的系统属性,转而采用非标准选项和类似HotSpot中虚拟机标志(VM flag)的方式设置相关选项。
标准选项
以-X开头的选项是大部分JVM厂商都支持的通用设置。例如,用于设置堆大小最大值的选项-Xmx在包括JRockit在内的大部分JVM中都是相同的。当然,也存在例外,如JRockit中的选项-Xverbose会打印出可选的子模块日志信息,而在HotSpot中,类似的(但实际上有更多的限制)选项是-verbose。
非标准选项
以-XX开头的命令行选项是各个JVM厂商自己定制的。这些选项可能会在将来的某个版本中被废弃或修改。如果JVM的参数配置中包含了以-XX开头的命令行选项,则在将Java应用程序从一种JVM迁移到另一种时,应该在启动JVM之前去除这些非标准选项。
确定了新的JVM选项后才可以启动Java应用程序。通常,Java应用程序迁移到JRockit JVM后,内存消耗会有些许增加,但能够获得更好的性能。
应该通过查询目标JVM的文档来确定要使用的非标准命令行选项是否在不同JVM厂商之间和不同JVM版本之间具有相同的语义。
本文来自年轻人玩的就是心跳投稿,不代表电子书资源网立场,如若转载,请联系原作者获取。