在《Java/J2EE应用Profiler整合:调试类型和调试流程》中,介绍了调试类型和调试流程。 在这节中,我要介绍Java调试引擎、Java/J2EE应用和Java应用服务器整合的实践挑战,提出建议和方法,以克服问题,使profiling活动可以有效的进行。这些问题大体上分为几类,如下面的图3.这些类别和补救的方法会在未来的几节详细讨论。 图3 调试整合的问题 问题 如果JVM参数包含-XX参数,Java profiler和基于Java的应用服务器的整合,可能会不稳定,或者失败,尤其是一些“Debugging”和“Diagnostic”标志。
要明白JVM选项的含义,指定-XX参……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
在《Java/J2EE应用Profiler整合:调试类型和调试流程》中,介绍了调试类型和调试流程。
在这节中,我要介绍Java调试引擎、Java/J2EE应用和Java应用服务器整合的实践挑战,提出建议和方法,以克服问题,使profiling活动可以有效的进行。这些问题大体上分为几类,如下面的图3.这些类别和补救的方法会在未来的几节详细讨论。
图3 调试整合的问题
问题
如果JVM参数包含-XX参数,Java profiler和基于Java的应用服务器的整合,可能会不稳定,或者失败,尤其是一些“Debugging”和“Diagnostic”标志。要明白JVM选项的含义,指定-XX参数会不稳定,不建议随便使用它。此外,这些选项更改,不会另行通知[1].
因此,在这里试图获得如-XX标志,当整合Profiler和Java应用服务器时,如果Profiler引擎的一些异常行为出现时,要找出问题。
推荐的解决方案
JVM –XX Flag | 描述 | 影响 | 建议 |
-XX:+AggressiveOpts | 此标志为打开“单点性能优化”选项,在SUN JDK1.5,或更高的版本中可以打开。这个标志会做最新的性能调整,然而,有一个忠告是该选项是实验性的,在某方面可以优化,此选项可以在生前前评估,部署应用程序到产品中改变。 (注意:要用-XX:+UnlockDiagnosticVMOptions & -XX:-EliminteZeroing选项) | JVM可能不会启动Java引擎/调试或者应用程序可能会崩溃 | 禁用这些选项或者从JVM参数列表中删除这些,可以启用调试活动 |
-XX:-EliminateZeroing | 该选项禁用新创建的字符数组对象的初始化。通常使用-XX:+UnlockDiagnosticVMOptions If -XX:+AggressiveOpts | JVM可能不会启动Java引擎/调试或者应用程序可能会崩溃 | |
-XX:+UnlockDiagnosticVMOptions | Java/JVM一定要在“diagnostic”标志前面 | JVM可能不会启动Java引擎/调试或者应用程序可能会崩溃 | |
-XX:-ExtendedDTraceProbes | 使用性能影响的“dtrace”探头,可以用来监测JVM内部的状态和活动,以及Java应用程序是否运行(在JDK 1.6中引用,只在Solaris 10以上可用) | 如果这个选项已经启用,添加额外的探能引擎会使JVM行为变成unknown | |
-Xrunhprof[:options] | HPROF实际上是JVM本地代理库,通过命令行选项会自动加载,JVM启动时,如果通过JVM参数,就会变成JVM流程的一部分。通过在启动时提供HPROF选项,用户可以从HPROF中请求各种类型的heap和cpu调试的特性 | 如果这个选项已经启用,添加额外的探能引擎会使JVM行为变成unknown |
在《Java/J2EE应用Profiler整合问题及解决方案》中,我们将具体解释这些不可协调的应用程序、安全权限、应用程序缓存;在J2EE服务器中,COTS产品的默认检测以及待定的操作系统。
相关推荐
-
构建高性能J2EE应用的十个技巧
构建高性能的J2EE应用不但需要了解常用的实施技巧。下面介绍最常用的10种有效方法,可帮助架构设计师们快速成为这方面的专家。
-
开发J2EE应用应遵循的几点原则
软件开发技术从来就没有”银弹”,所以J2EE技术也不是万能的。但是,如果我们在结合具体商业需求的基础上,合理的应用好J2EE技术,其结果可想而知。
-
构建高性能J2EE应用的五种核心策略
对于J2EE,我们知道当开发应用时,在架构设计阶段的决定将对应用的性能和可扩展性产生深远的影响。现在当开发一个应用项目时,我们越来越多地注意到了性能和可扩展性的问题。
-
部署基于JBoss 的 J2EE应用程序
JBoss,作为J2EE应用服务器,以其EJB容器卓越的性能、技术的潮流性、开发部署J2EE应用的方便性赢得了很多J2EE开发者的信赖。其中,免安装、基于JMX构架、热部署(Hot Deploy)、快速开发EJB应用等几项特征与其他商用服务器相比,显得有些得意忘形的样子。尽管其本身没有重大的缺陷,但毕竟是Open Source的开发模式,文档很少,因此要很好的掌握、精通开发基于JBoss的应用还是显得有些力不从心。