java内存监控工具JProfiler学习笔记

【JProfiler使用操作手册】 首先,你需要到JProfiler的官方网站上下载JProfiler的安装包。首先,你需要到JProfiler的官方网站下载JProfiler的安装包。比如,你可以选择需要分析的Java进程,选择使用的JVM参数等。在这一部分,我们将使用一个简单的示例来说明如何使用JProfiler来分析和优化应用程序的性能问题。启动JProfiler后,点击"New Session"按钮创建一个新的JProfiler项目。然后,选择需要分析的Java进程。根据快照的分析结果,你可以优化代码,减少耗时较长的方法的执行时间。 阅读详情

一、安装JProfiler

      点击下载  带序列号

 

二、主要功能简介

1.内存剖析 Memory profiler

JProfiler 的内存视图部分可以提供动态的内存使用状况更新视图和显示关于内存分配状况信息的视图。所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾回收的对象。

  • 所有对象
    显示类或在状况统计和尺码信息堆上所有对象的包。你可以标记当前值并显示差异值。
  • 记录对象 Record objects
    显示类或所有已记录对象的包。你可以标记出当前值并且显示差异值。
  • 分配访问树 Allocation call tree
    显示一棵请求树或者方法、类、包或对已选择类有带注释的分配信息的J2EE组件。
  • 分配热点 Allocation hot spots
    显示一个列表,包括方法、类、包或分配已选类的J2EE组件。你可以标注当前值并且显示差异值。对于每个热点都可以显示它的跟踪记录树。

2.堆遍历 Heap walker

在JProfiler的堆遍历器(Heap walker)中,你可以对堆的状况进行快照并且可以通过选择步骤下寻找感兴趣的对象。堆遍历器有五个视图:

  • 类 Classes
    显示所有类和它们的实例。
  • 分配 Allocations
    为所有记录对象显示分配树和分配热点。
  • 索引 References
    为单个对象和“显示到垃圾回收根目录的路径”提供索引图的显示功能。还能提供合并输入视图和输出视图的功能。
  • 数据 Data
    为单个对象显示实例和类数据。
  • 时间 Time
    显示一个对已记录对象的解决时间的柱状图。

3. CPU 剖析 CPU profiler

JProfiler 提供不同的方法来记录访问树以优化性能和细节。线程或者线程组以及线程状况可以被所有的视图选择。所有的视图都可以聚集到方法、类、包或J2EE组件等不同层上。CPU视图部分包括:

  • 访问树 Call tree
    显示一个积累的自顶向下的树,树中包含所有在JVM中已记录的访问队列。JDBC,JMS和JNDI服务请求都被注释在请求树中。请求树可以根据Servlet和JSP对URL的不同需要进行拆分。
  • 热点 Hot spots
    显示消耗时间最多的方法的列表。对每个热点都能够显示回溯树。该热点可以按照方法请求,JDBC,JMS和JNDI服务请求以及按照URL请求来进行计算。
  • 访问图 Call graph
    显示一个从已选方法、类、包或J2EE组件开始的访问队列的图。

4. 线程剖析 Thread profiler

对线程剖析,JProfiler提供以下视图:

  • 线程历史 Thread history
    显示一个与线程活动和线程状态在一起的活动时间表。
  • 线程监控 Thread monitor
    显示一个列表,包括所有的活动线程以及它们目前的活动状况。
  • 死锁探测图表 Deadlock Detection
    显示一个包含了所有在JVM里的死锁图表。
  • 目前使用的监测器 Current monitor useage
    显示目前使用的监测器并且包括它们的关联线程。
  • 历史检测记录 History usage history
    显示重大的等待事件和阻塞事件的历史记录。
  • 监测使用状态 Monitor usage statistics
    显示分组监测,线程和监测类的统计监测数据。

5.VM 遥感勘测技术 VM telemetry

观察JVM的内部状态,JProfiler提供了不同的遥感勘测视图,如下所示:

  • 堆 Heap
    显示一个堆的使用状况和堆尺寸大小活动时间表。
  • 记录的对象 Recorded objects
    显示一张关于活动对象与数组的图表的活动时间表。
  • 垃圾回收 Garbage collector
    显示一张关于垃圾回收活动的活动时间表。
  • 类 Classes
    显示一个与已装载类的图表的活动时间表。
  • 线程 Threads
    显示一个与动态线程图表的活动时间表。

 

三、实战

(一)任务目标

找出项目中内存增大的原因

  (二)配置说明

           操作系统:Windows2003

              Web容器:Tomcat5.0.23

              JDK版本:sun1.4.2

              监控类型:本地

              Jprofiler安装路径:D:/jprofiler5

              Tomcat安装路径:D:/Tomcat5

(三)  测试项目

1.  新建WEB项目test

2.  建包cn.test

3.  在该包下建类文件TestMain.java 和 TestBean.java

package cn.test;

public class TestBean {

   String name = "";

}

 

package cn.test;

import java.util.ArrayList;

publicclass TestMain {

publicstatic ArrayListlist =new ArrayList(); //存放对象的容器

public static int counter = 0;    //作统计用

     }

 

       4.建测试用的JSP文件init1.jsp、init2.jsp

Init1.jsp(每次执行都创建1万个TestBean对象)

<%@ pagelanguage="java"import="cn.test.*"pageEncoding="ISO-8859-1"%>

<!DOCTYPEHTMLPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>init</title>

  </head>

  <body><%

    for(int i=0;i<10000;i++){

       TestBean b = new TestBean();

       TestMain.list.add(b);      

    }

    %>

    SIZE:<%=TestMain.list.size()%><br/>

    counter:<%=TestMain.counter++%>

  </body>

</html>

Init2.jsp和init1.jsp一模一样即可(后面有用)。

 

 

(四)     配置测试用例

1.  点击d:/jprofiler5/bin/jprofiler.exe

2.  执行菜单SessionàIntegration WizardsàNew ServerIntegration

 

 

 

选择是本地测试还是远程测试:

 

选择tomcat运行的脚本文件:

 

选择虚拟机的类型:

 

选择监控端口:

用默认的即可

 

选择Web容器是否和Jprofiler一起运行:

默认即可

 

配置提示:

  在“远程控制”的时侯要仔细阅读一下。

 

然后选择立即起动,开始运行。

 

 

点击“OK”,我们可以看到另外一个小窗口出来了:

 

Jprofiler的窗口为:

 

这样我们就可以进行监控了!

(五)     开始测试

1.  在IE地址栏中输入:http://localhost/test/init1.jsp,执行一次,我们可以在内存视图中看到cn.test.TestBean对象被创建了10000次:

 

2.标记现在的状态,然后再执行init1.jsp和,init2.jsp可以让我们找到哪些类在调用后没有被释放(很重要!!!)

 

查看哪些类被发生了变化:

红色的变成是发生变化的对象及其数量。

我刚才执行了4次init1.jsp和1次init2.jsp,正好产生了50000个TestBean对象,和图示显示的一样。

3.  过一会后,按F4键进行垃圾回收。但回收完成后,这些对象依然存在,说明某些地方对这个类的引用没有被释放!

4.  找出是哪些地方使用了TestBean类,并且没有释放它们

在cn.test.TestBean对象上点击右键选择“Take Heap Snapshot for Selection”,观察它的heap

下一步:

点击“OK”:

 

在该类中点击右键,在出现的菜单中选择“Use Selected Objects”:

出现如下窗口:

选择”Allocations”,点击“OK”,然后我们要的结果就出来了

图中显示调用此类的地方是init1.jsp和init2.jsp,并且各自占用的比率都列出来了。

既然问题的所在找出来了,接下来就该去解决问题了!

(五)总结

其实,我们在测试内存占用时还可以另外写一个释放内存的JSP文件来配合测试,会更清楚一些:

Free.sjp

<%@ pagelanguage="java"import="java.util.*,cn.test.*"pageEncoding="ISO-8859-1"%>

<!DOCTYPEHTMLPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>init</title>

  </head> 

  <body>  

    <%TestMain.list.clear();%> collection OK!

  </body>

</html>

在点击完 init1.jsp 或 init2.jsp 后,可以看到内存是 TestBean 对象的数量增加了,然后执行 free.sjp ,接着再执行 F4 进行垃圾回收,立刻可以看到 TestBean 对象被释放掉了。
内存分析工具JProfiler 内存分析 JProfiler 阅读详情

相关推荐

使用JProfiler进行Java应用性能分析

JProfiler可以帮助检测内存泄漏,找出不再使用却没有释放的对象,也可以通过JProfiler监控内存使用的高峰时刻,帮助识别应用在负载高峰时的内存需求,确保程序在高压力环境下稳定运行。IDEA中,打开一个现存的项目,比如一个Springboot项目,选择Springboot的启动类,点击JProfiler图标就可以运行项目,执行性能分析。IDEA中,设置==>工具==>JProfiler==>JProfiler executable选择JProfiler安装目录下的可执行文件==>确定。

cheagoun的博客 2902

深入浅出JProfiler

该文章来自阿里巴巴技术协会(ATA) 由于最近工作的原因,使用了JProfiler(8)来做性能瓶颈分析,发现这个工具使用起来确实挺方便,现在整理一下JProfiler相关知识(在google查了一通,没有我想要的)。 一.JProfiler是什么 JProfiler是由ej-technologies GmbH公司开发的一款性能瓶颈分析工具(该公司还开...

weixin_34244102的博客 2025

JVM监控及诊断工具GUI篇之JProfiler

目录 一、概述 二、两种数据采集方式 三、VM遥感监测视图中相关监测数据 四、内存视图(Live Memory)的分析 五、Heap Walker功能说明 六、CPU视图功能说明 七、Threads视图功能说明 一、概述 在运行Java的时候有时候想测试运行时占用内存情况,这时候就需要使用测试工具查看了。在eclipse里面有 Eclipse Memory Analyzer tool(MAT)插件可以测试,而在IDEA中也有这么一个插件,就是JProfiler。JProfiler 是由 e

weixiaohuai的博客 6606

【JVM 监控工具】性能诊断--JProfiler的使用

在 Java 的世界里,有许多诊断工具可供选择,既包括像 jmap、jstat 这样的简单命令行工具,又包括 JVisualvm、JProfiler 等图形化综合诊断工具,同时还有 SkyWalking、ARMS 这样的针对分布式应用的性能监控系统。下面分别对其进行介绍。

DreamSun的博客 1万+

【Jvm】性能调优(拓展)Jprofiler如何监控和解决死锁、内存泄露问题

Jprofilers是针对Java开发的性能分析工具可以对Java程序的内存,CPU,线程,GC,锁等进行监控和分析如果没有Jprofiler这类工具, 在生产环境发生内存泄漏, 去一行一行review所有代码是不现实的, 通过此工具我们可以在较短的时间内定位到导致内存泄漏出现的代码位置, 然后review该位置的代码即可.内存泄漏的难的主要是定位, 解决起来一般比较简单,重启生产环境应用,让服务恢复正常, 然后在把导致内存泄漏的代码优化(

墩墩分墩 2416

SDM660电源部分配置:

SDM660电源部分配置: Panel power supplies 1、Reference power supplies Description Name Regulator Voltage (V) Panel power supply 0 vddio PMIC 660/L11 1.8 Panel power supply 1 Lab PMIC 660/lab 4.6 Panel power s...

weixin_41811215的博客 4729

JVM内存分析工具JProfiler的安装和使用

目录1 JProfiler下载与安装1.1 IDEA插件方式安装1.1.1 JProfiler插件安装1.1.2 JProfiler监控软件安装1.1.3 IDEA运行环境配置2 JProfiler功能说明2.1 Telemetries(遥感勘测技术视图)2.2 Live momery (内存视图)2.3 Heap walker (堆遍历)2.4 CPU views(cpu视图)2.5 Threads(线程视图)2.6 Monitor &locks3 Jprofiler应用3.1 内存分析3.2 C

赵广陆 5637

Claude Code启动失败解决方案,执行文件不兼容一键修复

Claude Code命令行工具突然报错,显示"不支持的16位应用程序"。作者排查Node版本无果后,发现是Anthropic更新导致Windows兼容性问题。解决方法很简单:卸载旧版、切换npm镜像源、重装最新版即可恢复。经验教训:遇到类似问题应先搜索社区反馈,避免无谓排查,同时注意npm源使用后及时还原。整个踩坑过程虽折腾,但最终只是简单的重装问题。

1461

JProfiler监控内存

JProfiler是一个全功能的Java剖析工具(profiler),专用於分析J2SE和J2EE应用程式。它把CPU、线程和记忆体的剖析组合在一个强大的应用中。JProfiler可提供许多IDE整合和应用服务器整合功能。JProfiler直觉式的GUI让你可以找到性能瓶颈、抓住内存泄漏(memory leaks)、并解决多线程的问题。它让你得以对heap walker作资源回收器的root an

liupeng900605的专栏 1万+

带标签的PHM2009齿轮箱数据集

PHM2009附加数据集—带标签的齿轮箱数据集,可用于测试算法

qq_39379705的博客 4876

Kali Linux渗透测试:蚁剑(AntSword)三种安装方法与避坑指南

WebShell管理是渗透测试与网络安全攻防演练中的关键技术环节,它允许安全人员在获得初步访问权限后,对目标系统进行文件管理、命令执行和数据库操作等深度控制。其核心原理是通过在Web服务器上植入特定脚本,建立一条隐蔽的远程管理通道。在实战中,一个高效、稳定的WebShell管理工具能极大提升后渗透阶段的工作效率与成功率。蚁剑(AntSword)作为一款功能强大的国产开源工具,凭借其插件化架构和图形化界面,成为众多安全研究人员的首选。本文将聚焦于如何在渗透测试专用操作系统Kali Linux上部署蚁剑,详细对

weixin_34413103的博客 414

JVM监控工具 Jprofiler

Jprofiler   官方下载地址 , https://www.ej-technologies.com/download/jprofiler/files , E:\工作内容\监控工具\jprofiler , 1个小时 jvm 检测工具使用 ; -- jprofiler(监控app服务器为主) ,   JProfiler使用详细教程学习笔记(基础教程 ,可以从这边起步), √ ...

xiaolizh的博客 2677

FPGA实战:手把手教你实现雷达信号数字下变频(DDC)完整流程

本文提供了一份完整的FPGA实现雷达信号数字下变频(DDC)的实战指南。内容涵盖从Matlab行为级仿真到FPGA硬件实现的完整闭环流程,详细讲解了数字混频、滤波、抽取等核心步骤,并分享了基于Vivado的IP核配置、数据位宽量化及资源优化等关键工程实践经验,旨在帮助读者掌握DDC系统的硬件实现与调试。

dog123的博客 342

JProfiler监控eclipse学习笔记

jprofiler文档 JProfiler是一个全功能的java剖析工具(profiler),专用于分析J2SE和J2EE应用程序。   简介: 它把CPU、执行绪和内存的剖析组合在一个强大的应用中。JProfiler可提供许多IDE整合和应用服务器整合用途。   作用: JProfiler直觉式的GUI让你可以找到性能瓶颈、抓出内存漏失(memory leaks)、并解决执行绪的问

沉底的石头 5197

Origin软件XRD全峰拟合保姆级教程:从数据导入到弱峰处理技巧

本文提供了一份Origin软件进行XRD全峰拟合的深度实战指南。文章重点解析了从数据导入预处理、基线锚点视觉化设置,到弱峰拟合的锁定策略与手动干预等核心技巧,旨在帮助用户避开常见错误,获得可靠、精确的拟合结果,从而有效服务于材料结构分析。

rgv2345678的博客 707

Zemax实战录——非序列模式下的微透镜阵列仿真与优化

本文详细介绍了在Zemax非序列模式下进行微透镜阵列仿真的完整流程与优化技巧。文章重点阐述了从序列模式切换到非序列模式的必要性,并逐步指导如何搭建光源、阵列与探测器的仿真环境。核心在于通过调整圆锥系数等关键参数优化像差,并增加光线数以提升仿真精度与均匀性,为光学设计提供可靠依据。

weixin_28339967的博客 527

JAVA内存分析:idea集成jprofiler查看JVM内存使用情况

JAVA内存分析:idea集成jprofiler查看JVM内存使用情况 上一篇 JAVA内存分析:基于dump内存溢出快照分析 引言 在生产环境发现存在内存溢出的情况,想在本地的开发环境,将程序跑起来进行运行情况分析,那么我们可以采用idea+jprofiler集成的方式,进行内存分析。 操作步骤 idea 集成 jprofiler插件 本地安装 jprofiler.exe 下载地址 :jprofiler 运行本地程序 观察数据处理时,JVM中的变化 开始执行 1. idea 安装jprofiler

liaoyue11的博客 1万+

C#上位机+YOLO实时目标检测:摄像头采集+多线程推理+精度调优全流程

标注数据集:使用LabelImg工具标注目标对象,按YOLO格式整理数据集;模型训练:使用Ultralytics库训练自定义模型,提升特定目标的检测精度;训练参数优化:增加训练轮数(epochs=100200)、调整批次大小(batch=1632)、使用数据增强(flip、mosaic等)。摄像头采集:封装通用采集类,支持USB摄像头/网口相机,实现稳定帧读取与异常处理;多线程推理:采用“采集线程+推理线程+UI线程”解耦架构,使用线程安全队列传递帧数据,彻底解决界面卡顿;核心封装。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 675

JProfiler详解 JVM性能监测内存泄露分析工具

JProfiler是一款业界领先的Java性能分析工具,由ej-technologies公司开发,专门设计用于分析和优化Java和JVM应用程序的性能。它可以无缝集成到多种开发环境如IntelliJ IDEA、Eclipse等,并支持对本地和远程应用程序的实时或离线性能分析。

靖节先生的博客 5715

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

JProfiler使用(Java分析工具)

JProfiler功能介绍 telemetries(遥感监测) Overview 整体的一个视图,下面几个菜单的一个整合。 Memory 内存 Memory pool 可以选择查看具体的结构 点击RunGC GC Activity 垃圾回收器的活跃行为 Classes 内存中加载类的个数 Threads CPU Load cpu 加载 程序运行的时候cpu的使用情况 Live memory 内存视图分析 All Object

BUG指挥课堂 7400

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【JProfiler】idea整合JProfiler分析内存泄漏

前言 在运行java项目时想测试运行时占用内存情况,这时候就需要使用测试工具查看了。在eclipse里面有Eclipse Memory Analyzer tool(MAT)插件可以测试。而在idea中也有这么一个插件,就是JProfiler。 下载安装 打开idea,进入设置界面 安装之后重启即可。安装成功后查看情况(多了一个图标)。 (点击图标,在弹出的对话框中,什么都无法选择,即ok按钮一直是不可点击状态)这是什么情况呢,这是这个插件启动需要依赖一个可执行的文件,就是源生的JAVA .

ooooooooooooooxiaosu的博客 2461

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【转载】Java内存分析工具--IDEA的JProfiler和JMeter插件

一、JProfiler简介   JProfiler 是一个商业授权的Java剖析工具,由EJ技术有限公司,针对的Java EE和Java SE应用程序开发的。它把CPU、执行绪和内存的剖析组合在一个强大的应用中。JProfiler可提供许多IDE整合和应用服务器整合用途。JProfiler的是一个独立的应用程序,但其提供Eclipse和IntelliJ等IDE的插件。它允许两个内存剖面评估内

wait_notify的博客 3万+

jprofiler 内存监控

java.lang.OutOfMemoryError 每每看到这个异常心都拔凉拔凉的,不用说了又是内存溢出了,现在问题是那里内存溢出呢?找到这个问题就好办了,但是说起来简单做起来难。上网找了一些内存监控器来监控内存,大费周折终于找到jprofiler软件了。下面介绍下jprofiler配置过程。 下载jprofiler_windows_5_1_4.zip文件,解压到D盘 找到\jprofil...

zx527291227的专栏 241

性能监控(二)-Jprofiler内存分析

1.界面介绍 后续更新。。。

有点想法的专栏 2779

Java内存监控程序_java内存监控工具及命令

关键字:内存监控工具及命令一篇非常好的内存监控知识,分享给爱学习的亲们.....jinfo:可以输出并修改运行时的java 进程的opts。jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。jmap:打印出某个java进程(使用pid)...

weixin_35363591的博客 1987
上一篇: MySql常用命令大全
下一篇: java调用window系统默认打印机
dinphi
博客等级 码龄18年 11粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值