JProfiler学习笔记
JProfiler直觉式的GUI让你可以找到效能瓶颈、抓出内存漏失(memory leaks)、并解决执行绪的问题。它让你得以对heap walker作资源回收器的root analysis,可以轻易找出内存漏失;heap快照(snapshot)模式让未被参照(reference)的对象、稍微被参照的对象、或在终结(finalization)队列的对象都会被移除;整合精灵以便剖析浏览器的Java外挂功能。 【JProfiler学习笔记】 JProfiler是一款强大的Java性能分析工具,其直观的图形用户界面使得开发者能够轻松找到性能瓶颈,定位内存泄漏,并解决线程问题。本文将深入介绍JProfiler的主要功能,通过实战案例来帮助理解如何使用这个工具。 1. **内存剖析(Memory Profiler)** - **所有对象**:展示堆上所有类或包及其对象的状态和大小信息,可标记当前值查看差异。 - **记录对象**:关注特定记录过的对象,同样能显示差异。 - **分配访问树**:按调用层次结构显示分配信息,帮助追踪内存分配源。 - **分配热点**:列出消耗内存最多的热点,提供跟踪记录。 2. **堆遍历(Heap Walker)** - **类**:显示所有类及其实例信息。 - **分配**:查看分配树和分配热点,辅助查找内存泄漏。 - **索引**:提供到GC根的引用路径,便于分析对象生命周期。 - **数据**:展示单个对象的实例和类数据。 - **时间**:通过柱状图展示已记录对象的存活时间。 3. **CPU剖析(CPU Profiler)** - **访问树**:展示累积的自顶向下调用树,支持按JDBC、JMS、JNDI等服务划分。 - **热点**:列出耗时最多的方法,附带回溯树。 - **访问图**:以图形方式显示调用关系。 4. **线程剖析(Thread Profiler)** - **线程历史**:记录线程活动和状态的时间线。 - **线程监控**:列出所有活动线程及其状态。 - **死锁探测图表**:可视化显示JVM内的死锁情况。 - **当前监测器使用**:显示正在使用的监视器及关联线程。 - **历史检测记录**:记录重大等待和阻塞事件。 - **监测使用状态**:统计监视器、线程和监视器类的使用数据。 5. **VM遥感勘测(VM Telemetry)** - **堆**:监控堆的使用情况和大小变化。 - **记录的对象**:追踪活动对象和数组的状态。 - **垃圾回收**:展示垃圾回收活动的时间表。 - **类**:已加载类的动态图表。 - **线程**:动态线程图表的活动时间表。 **实战案例**: 在Windows2003操作系统,使用Tomcat5.0.23作为Web容器,JDK版本为1.4.2,进行本地监控。JProfiler安装在D:\jprofiler5,Tomcat安装在D:\Tomcat5。为了找出项目中内存增长的原因,可以启动JProfiler,连接到运行中的Tomcat实例,开启内存剖析,观察对象分配和内存使用情况。通过对比不同时间段的内存快照,分析哪些类或对象导致内存占用增加,进而定位可能的内存泄漏问题。 JProfiler是Java开发中不可或缺的工具,它提供了丰富的视图和分析手段,帮助开发者深度洞察应用的性能表现,及时发现和修复潜在问题,提升系统效率。
剩余16页未读,继续阅读
- 粉丝: 0
- 资源: 11
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助