由于项目遇到了性能问题,用一段时间就出现了outOfMemory异常,以前重来没有处理过类似的问题,很是恼火! 在网上看到javaers们都说JProfile不错,于是就下载下来看看,这一系列文章是记录我修复这个问题的过程。
第一手的资料当然是官方的文档了,虽然是英文的,不过也没有办法,只能硬着头皮看,混口饭吃不容易啊!
JVM有很多本地接口, 包含在了 JDK 的安装目录JAVA_HOME/**/include下, 这里面包含了大量的以 .h 结尾的文件,所有的本地库和JVM之间的交流都是定义在 jni.h 这个文件里, Java Native Interface 是 java提供的一种环境,使得 java 代码调用 本地库,以及本地库调用java 代码。
到JDK 1.5, Sun提供了先后两种用于分析JVM的接口, JVMPI(Profiling Interface) and JVMTI(Tool Interface),后者是前者的改进,解决了 JVMPI不能跑在特殊的虚拟机上的问题和不能分析大堆栈的问题,这两个接口别包含在jvmpi.h 和jvmti.h 里,他们被设计成基于事件的分析模型,可以注册处理不同的事件,当然也可以关闭,这种可配置性对于个性化分析很重要,例如: JProfile 默认对于 对象关联记录时关闭的。当然JProfile提供了GUI的方法监控这个事件. 疑问?文档有说,由于在服务器启动的时候,如果开启了对象关联事件,会加载大量的类,是我们又不关心这些事件,可以设置在某个时间段关闭对象关联事件,也就是说可以在之后的某个时间点,又打开(runtime config),还没有发现怎么设置?
监控事件列表:
事件名称 |
描述 |
Events for the life-cycle of the JVM |
分析代理在JVM完全启动之前就被激活,它可以监控核心类被加载,什么方法被执行对于JVM的初始化阶段 |
Events for the life-cycle of the classes |
分析代理在类 load and unloaded被激活,所有其他的事件,例如对象关联和方法调用事件用整数id被报告给这个事件.(All other events, like the object allocation events or the method call events use the integer class ids and the the method ids that are reported with this event.),不知道理解的对不? |
Events for the life-cycle of the threads |
可以显示不同的线程的调用树,也可以分析监视器冲突,分析代理必须注意什么时候线程创建和销毁,当线程开始,他的标识就被确认了,所有其他的JVMPI/JVMTI 事件有一个指针去标识那个源线程。 |
Events for the life-cycle of objects |
分析代理可以被唤醒,当对象在内存中被垃圾回收器分配,释放,移动。如果对象关联事件被关闭,那么他们被标识为非记录的对象 |
Events for the life-cycle of method calls (JVMPI only) |
用来报告每一个方法的进入和退出, 在JProfile里这叫做“Full instrumentation",但这个不被推荐,因为在JVM里报告每一个方法非常的耗资源,JVMTI 不支持这个,是因为它表现的不是很好对于这个事件。 |
Events for the life-cycle of monitor contention |
无论什么时候你调用 "synchronize" 和Object.wait()时候,JVM会用到Java监视器,进入监视器,推出监视器,等待监视器报告给 分析代理,这些数据可以被JProfile生成以死锁图,监视器冲突视图展现。 |
Events for garBage Collector |
垃圾回收器数据同样被报告给 分析代理 |
今天就到这里吧。。。 Page_11
分享到:
相关推荐
Jprofile_6_11_KeyGen.zip
JProfile6_2_5是JProfile6的最高版本,附带Key,很好用
由于我只能传20M的附件,所以无法将JProfile6.2.2的安装文件上传上来,所以只上传了一个sn序列号,用户名和公司随便填即可注册成功。我在win7和ubuntu下都试过可以破解,附上官方安装文件的下载链接。 Linux:...
通过实际操作和学习提供的配置实例,我们可以更深入地掌握JProfiler的使用技巧,提升Java应用的性能表现。在日常开发中,善用JProfiler能帮助我们及时发现和解决问题,从而提高软件质量和用户体验。
jprofiler 对 jvm 的监控工具, 非常好用,推荐一波,还有下载分是系统设定的,我只赚一份,坑爹
JProfile.part1.rar
JProfile.part2.rar
jprofiler11注册机,亲测可用。jprofiler11注册机,亲测可用。
附件中包含JProfile7.X注册码,源程序请使用下面地址下载,本人亲测可用。 下载地址:http://download.ej-technologies.com/jprofiler/jprofiler_windows_7_1_2.exe
jprofile11 亲测可用.有需要的可以直接下载
**知识点详解:JProfiler 5.1.2 配置指南** JProfiler是一款高级的Java应用性能分析工具,主要用于监控和优化Java应用程序的性能。本文将深入解析如何配置JProfiler 5.1.2版本,包括下载、安装、与Eclipse集成以及...
jprofiler7.2.2的注册码,7.2.*版本都能用,自己试了一下7.2.2版本
"jprofile"则是JProfiler的简称,它是一款强大的Java性能分析工具,用于监控和优化应用程序的内存使用、CPU消耗、线程活动以及其他的JVM性能指标。 首先,让我们深入了解Apache Tomcat 5.5: 1. **Tomcat架构**:...
在提供的压缩包中,`jprofile安装.docx`应该包含JProfiler的安装步骤和使用教程。通过阅读这份文档,你可以详细了解如何连接到应用程序,进行内存分析,查看线程状态,以及优化代码性能等方面的操作。 总之,...
#### 一、jProfile-9.2 软件概述 jProfile 是一款强大的Java应用性能分析工具,它可以帮助开发者和测试人员深入分析Java应用程序的性能瓶颈,提高程序运行效率。jProfile 提供了一系列丰富的功能,包括内存分析、...
根据提供的文件信息,本文将详细介绍JProfiler的基本使用方法,包括如何通过Start Center创建或打开会话,以及如何管理和查看各种性能监测数据。 ### JProfiler 使用说明 #### 1.... ##### 1.1 Open Session ...
JProfiler_Win10 破解版 带注册码 可用。AVA性能瓶颈,漏洞检测,提高开发效率。它一个Java代码、内存和覆盖率分析工具。
idea jprofile 插件欢迎下载。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...