`
gemantic
  • 浏览: 337215 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Jprofiler监控工具

阅读更多

 

            JProfiler是一款Java的性能监控工具。可以查看当前应用的对象、对象引用、内存、CPU使用情况、线程、线程运行情况(阻塞、等待等),同时可以查找应用内存使用得热点,即:哪个对象占用的内存比较多;或者CPU热点,即:哪儿方法占用的较大得CPU资源等。监控是要消耗系统资源的,所以一般情况下不要用于性能测试时候的监控。

     部署启动等相关文档在附件,下面是内存泄漏和线程死锁的例子,JProfiler版本为6.2.4。


 

  • 内存泄漏

    1、测试代码

 

/**
 * JProfiler内存监控例子
 * 
 * @author yhye
 * @2011-11-9上午09:46:06
 */
public class JProfilerMemMain {
	
	private List<Integer> arr2 = null;

	// 方法执行完后无法释放Integer的数据内存
	public void test2() {
		arr2 = test();
	}

	// 方法执行完后释放Integer的数据内存
	public List<Integer> test() {
		List<Integer> arr = new ArrayList<Integer>();
		for (int i = 0; i < 200000; i++) {
			arr.add(i * 100);
		}
		return arr;
	}

	public static void main(String[] args) throws IOException {
		JProfilerMemMain jp = new JProfilerMemMain();
		for (int i = 1; i <= 10; i++) {
			jp.test2();
			// jp.test();
		}
		System.out.println("程序执行完毕");
		// 以下方法为保持程序处于活动状态
		char ch = ' ';
		while (ch != 'n') {
			ch = ch;
		}
	}
	
 

 

 

  2、查看步骤  

 

    启动JProfiler,等程序打印出"程序执行完毕" 后查看如下,Integer对象有800264

 

    

 

 

   点击菜单上的按钮"Run GC" 执行垃圾回收后查看如下,Integer对象还有200270

 

 

   说明未完全释放数据,查看对象在堆的快照


从以下视图可以看到该对象的arr2属性有数据未释放

 

 ①Heap Walker->Biggest Objects


 

Heap Walker->References,JProfilerMemMain对象自身占用空间16bytes,引用其他对象占空间4288kB

 

Heap Walker->Data,中arr2属性有数据占用空间


 

 

  • 死锁

 

 1、测试代码

 

package com.yyh.base.jprofile;

/**
 * 死锁例子
 * @author yhye
 * @2011-11-8上午09:12:25
 */
public class DeadlockMain  implements Runnable {
	boolean flag;
	static Object o1 = new Object();
	static Object o2 = new Object();

	public void run() {
		System.out.println(flag);
		if (flag) {
			synchronized (o1) {
				try {
					Thread.sleep(500);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
				synchronized (o2) {
					System.out.println("AAA");
				}
			}

		} else {
			synchronized (o2) {
				try {
					Thread.sleep(500);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
				synchronized (o1) {
					System.out.println("BBB");
				}
			}

		}

	}
	
	public static void main(String[] args) {
		DeadlockMain aaa = new DeadlockMain();
		DeadlockMain bbb = new DeadlockMain();
		aaa.flag = true;
		bbb.flag = false;
		Thread thA = new Thread(aaa);
		thA.setName("线程AAA");
		
		Thread thB = new Thread(bbb);
		thB.setName("线程BB");
		
		thA.start();
		thB.start();
    }
}
   

 

 2、查看步骤  

 

启动JProfiler,等程序执行一段时间后查看如下,线程AAA和线程BB出现阻塞

 


 

查看Thread Views-> Thread  Monitor

 

①线程AAA的调用方的类和方法


②线程BB的调用方的类和方法

查看Thread Views-> Thread  Dumps

 

①线程AAA的阻塞的代码位置

②线程BB的阻塞的代码位置


 

 

 

  • 大小: 31 KB
  • 大小: 25.3 KB
  • 大小: 37.9 KB
  • 大小: 25.7 KB
  • 大小: 22.6 KB
  • 大小: 21.9 KB
  • 大小: 30.2 KB
  • 大小: 31.2 KB
  • 大小: 20.7 KB
  • 大小: 20.8 KB
  • 大小: 20.4 KB
分享到:
评论
2 楼 923080512 2014-12-03  
1 楼 hua2011 2014-06-21  

相关推荐

    jprofiler监控工具使用说明.doc

    jprofiler监控工具使用说明.doc

    jprofiler监控工具使用说明

    ### jProfiler监控工具使用说明 #### 一、概述 JProfiler是一款全面且强大的Java剖析工具,主要用于分析J2SE和J2EE应用程序。该工具集成了CPU线程和内存剖析的功能,提供了直观的图形用户界面(GUI),帮助开发者...

    jprofiler监控工具使用说明.rar

    《JProfiler监控工具使用详解》 JProfiler是一款强大的Java性能分析和内存监控工具,它能够帮助开发者深入理解Java应用程序的运行情况,找出性能瓶颈并优化代码。本文将详细阐述JProfiler的主要功能、安装过程以及...

    Java性能监控工具Jprofiler4.3.2

    Java性能监控工具JProfiler是Java开发中的重要辅助软件,它为开发者提供了深入的性能分析功能,帮助优化应用程序的运行效率。JProfiler 4.3.2版本是该工具的一个历史版本,虽然较新版本可能拥有更多特性,但4.3.2...

    使用JProfiler 6.2 监控本地java程序运行

    JProfiler是一款强大的Java性能分析工具,可以帮助开发者深入理解应用程序的运行情况,定位内存泄漏、CPU消耗过高等问题。本文将详细介绍如何使用JProfiler 6.2来监控本地的Java程序。 首先,了解JProfiler的基本...

    【转帖】 使用 JProfiler 监控 JBoss 运行情况

    为了能够使用JProfiler监控JBoss的应用运行状态,需要进行以下配置: 1. **修改系统环境变量**:添加`LD_LIBRARY_PATH`环境变量,指向JProfiler的库文件所在目录`$JPROFILER_HOME/bin/linux-x8664`(或`$JPROFILER_...

    使用Jprofiler监控Apusic应用服务器.pdf

    ### 使用JProfiler监控Apusic应用服务器:深度解析与实践指南 #### 引言与背景 在IT运维与软件开发领域,性能监控与优化是确保应用高效稳定运行的关键环节。Apusic应用服务器作为企业级Java应用的承载平台,其性能...

    实战培训 01:JProfiler监控实例一.pdf

    在本次实战培训中,我们主要关注使用JProfiler工具进行Java项目的内存监控和分析。JProfiler是一款强大的Java性能分析工具,能够帮助开发者快速找出性能瓶颈,定位内存泄漏等问题。本文档会通过实例来指导如何利用...

    jdk监控工具 jprofiler jprofiler_windows.rar

    jprofiler监控jdk,需要安装,离线安装。win版本。 JProfiler 的内存视图部分可以提供动态的内存使用状况更新视图和显示关于内存分配状况信息的视图。所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾...

    jprofiler 远程监控 tomcat 服务器

    而当遇到服务器崩溃或性能瓶颈时,借助于专业的监控工具,例如JProfiler,可以极大地方便我们定位问题。本文将详细介绍如何在Windows环境下使用JProfiler远程监控CentOS上的Tomcat服务器。 首先,我们需要在服务器...

    idea插件JVM内存工具JProfiler11

    IntelliJ IDEA(简称Idea)作为广受欢迎的Java集成开发环境,提供了一系列强大的工具来帮助开发者进行性能调优,其中就包括JProfiler11这款强大的JVM内存分析工具。本文将详细介绍如何使用Idea中的JProfiler11插件,...

    JProfiler

    6. `Blog文章`中的文件可能包含详细的步骤指南,比如`Windows下JProfiler监控本地tomcat性能之安装配置.htm`和其关联的`.files`目录,这些文件详细阐述了如何在Windows环境下配置JProfiler来监控Tomcat。 总的来说...

    Jprofiler测试工具及学习文档

    《JProfiler测试工具及学习文档详解》 JProfiler是一款强大的Java性能分析工具,深受开发者喜爱。它提供了全方位的性能监控,包括内存分析、CPU使用率、线程分析、方法调用统计、JVM配置检查等多个方面,对于优化...

    JProfiler9性能测试工具

    总结来说,JProfiler9是一款全面而强大的Java性能测试工具,它在内存管理、CPU剖析、线程监控、数据库性能优化等方面都有出色的表现。通过对应用程序的深度分析,它能帮助开发者识别并解决性能问题,提升整体应用...

    jprofiler详细使用介绍

    jprofiler 是一款功能强大的 Java 性能分析工具,能够帮助开发者检测 Java 应用程序中的性能瓶颈、内存泄漏和死锁等问题。下面将详细介绍 jprofiler 的安装、注册和使用过程。 安装 jprofiler 安装 jprofiler 十分...

    jprofiler java内存监控

    JProfiler是一款强大的Java性能分析工具,它提供了全面的内存监控、线程分析以及CPU性能剖析等功能,帮助开发者深入理解应用程序的运行状态,找出潜在的性能瓶颈。 ### JProfiler的功能特性 1. **内存分析**:...

    jprofiler8性能监控jboss和tomcat图文详解

    【总结】JProfiler8作为一款强大的Java性能监控工具,无论是本地应用还是远程服务器,都能提供详尽的性能数据和问题诊断能力。通过正确配置,开发者可以有效地监控和改善应用程序的性能,减少内存泄漏,优化资源利用...

    JProfiler在Windows可视化远程监控Linux上Tomcat进程的安装步骤.pdf

    JProfiler是一款功能强大的Java剖析工具,专为Java开发人员设计,用于监视和分析Java应用的性能。该工具可用于本地和远程调试,也支持多种应用服务器和集成开发环境。本文档详细介绍了在Windows操作系统下通过...

Global site tag (gtag.js) - Google Analytics