JVM分析工具JProfiler介绍及安装

news2024/11/17 7:46:32

目录

一、什么是JProfiler?

二、JProfiler 功能结构 

1、分析代理

2、记录数据

3、快照

三、安装 

一、什么是JProfiler?

JProfiler是一个专业的工具,用于分析运行中的JVM内部发生的事情。当您的生产系统出现问题时,您可以在开发、质量保证和消防任务中使用它。
JProfiler主要处理四个主题:

  • 方法调用

这通常被称为“CPU评测”。方法调用可以通过不同的方式进行测量和可视化。方法调用的分析可以帮助您了解应用程序正在做什么,并找到提高其性能的方法。

  • 分配

分析堆上对象的分配、引用链和垃圾收集属于“内存分析”类别。此功能使您能够修复内存泄漏,通常使用较少的内存,并分配较少的临时对象。

  • 线程和锁

线程可以持有锁,例如通过对对象进行同步。当多个线程协作时,可能会发生死锁,JProfiler可以为您可视化它们。此外,锁可以被争用,这意味着线程必须等待才能获取它们。JProfiler提供了对线程及其各种锁定情况的深入了解。

  • 更高级别的子系统

许多性能问题发生在更高的语义级别上。例如,对于JDBC调用,您可能想要找出哪条SQL语句是最慢的。对于这样的子系统,JProfiler提供了将特定有效载荷附加到调用树的“探测器”。
JProfiler的UI是作为桌面应用程序提供的。您可以在不使用UI的情况下以交互方式评测实时JVM或自动评测。评测数据持久化在快照中,这些快照可以使用JProfiler UI打开。此外,命令行工具和构建工具集成可帮助您自动化分析会话。

二、JProfiler 功能结构 

下面给出了所有重要交互的全貌,这些交互涉及概要应用程序、JProfiler UI和所有命令行实用程序。

1、分析代理

“JVM工具接口”(JVMTI)是一个本机接口,探查器使用它来访问信息并添加用于插入自己的检测的挂钩。这意味着分析代理的至少一部分必须实现为本机代码,因此JVM分析程序不是独立于平台的。JProfiler支持网站上列出的一系列平台。
JVM探查器被实现为在启动时或稍后某个时候加载的本机库。要在启动时加载它,将在命令行中添加VM参数-agentpath:<path To native library>。您很少需要手动添加这个参数,因为JProfiler会为您添加它,例如在IDE集成、集成向导中,或者如果它直接启动JVM。然而,重要的是要知道,这就是启用概要分析的原因。
如果JVM成功地加载了本机库,它会调用库中的一个特殊函数,为评测代理提供初始化自己的机会。然后,JProfiler将打印两条以JProfiler>为前缀的诊断消息,这样您就知道评测是活动的。最重要的是,如果您传递-agentpath VM参数,则分析代理要么成功加载,要么JVM没有启动。
加载后,概要分析代理会要求JVMTI收到各种事件的通知,例如线程创建或类加载。其中一些事件直接传递分析数据。使用类加载事件,分析代理在加载类时插入类,并插入自己的字节码来执行测量。
JProfiler可以通过使用JProfilerUI或使用bin/jpenable命令行工具。在这种情况下,可能需要重新转换大量已经加载的类,以便应用所需的工具。

2、记录数据

JProfiler代理只收集分析数据。JProfiler UI是单独启动的,并通过套接字连接到分析代理。这意味着,无论评测JVM是在本地机器上还是在远程机器上运行,这实际上都无关紧要——评测代理和JProfiler UI之间的通信机制始终相同。
从JProfiler UI,您可以指示代理记录数据,在UI中显示分析数据,并将快照保存到磁盘。作为UI的替代方案,可以通过其MBean来控制概要分析代理。使用此MBean的命令行工具是bin/jpcontroller。
控制评测代理的另一种方式是使用一组预定义的触发器和操作。通过这种方式,分析代理可以在无人参与模式下运行。这在JProfiler中被称为“离线评测”,对于自动化评测会话非常有用。

3、快照

虽然JProfiler UI可以显示实时评测数据,但通常需要保存所有记录的评测数据的快照。快照可以手动保存在JProfiler UI中,也可以通过触发操作自动保存。
快照可以在JProfiler UI中打开和比较。对于自动化处理,命令行工具bin/jpexport和bin/jpcompare可以用于从以前保存的快照中提取数据并创建HTML报告。
从运行中的JVM获取堆快照的一种低开销方法是使用bin/jpdump命令行工具。它使用JVM的内置功能来保存HPROF快照,该快照可以由JProfiler打开,并且不需要加载评测代理。 

三、安装 

下载:ej-technologies - Java APM, Java Profiler, Java Installer Builder

为Windows和Linux/Unix提供了可执行安装程序,引导您逐步完成安装。如果检测到以前的安装,则会简化安装。

 在macOS上,JProfiler使用UI应用程序的标准安装过程:提供了一个DMG存档,您可以双击它安装在Finder中,然后您可以将JProfileer应用程序捆绑包拖动到/applications文件夹。该文件夹在DMG中作为符号链接可见。

 在Linux/Unix上,安装程序在下载后是不可执行的,所以在执行它们时必须预先加上sh。如果传递参数-c,安装程序将执行命令行安装。使用参数-q执行Windows和Linux/Unix的完全无人值守安装。在这种情况下,您可以传递额外的参数-dir<directory>来选择安装目录。

 

 运行安装程序后,它将保存一个文件.install4j/response.varfile,其中包含所有用户输入。通过在命令行上传递参数-varfile<path to response.varfile>,您可以获取该文件并使用它来自动执行无人参与的安装。
要设置无人参与安装的许可信息,请将-Vjprofiler.licenseKey=<license-key>-Vjprofiler.licenseName=<username>和-Vjprofiller.licenseCompany=<companyName>作为命令行参数(可选)。如果您有浮动许可证,请使用FLOAT:<服务器名称或IP地址>而不是许可证密钥。
对于Windows,归档文件也以ZIP文件的形式提供,对于Linux,归档文件则以.tar.gz文件的形式。命令

tar xzvf filename.tar.gz

将把.tar.gz档案提取到一个单独的顶级目录中。要启动JProfiler,请在提取的目录中执行bin/JProfiler。在Linux/Unix上,文件jprofiler.desktop可用于将jprofiler可执行文件集成到窗口管理器中。例如,在Ubuntu上,您可以将桌面文件拖动到启动器侧栏中,以便创建一个永久的启动器项。

将分析代理分发到远程计算机
JProfiler有两个部分:一方面是桌面UI和操作快照的命令行实用程序,另一方面是评测代理和控制评测JVM的命令行应用程序。您从网站下载的安装程序和档案包含这两部分。
但是,对于远程评测,您只需要在远程端安装评测代理。虽然您可以在远程机器上使用JProfiler分发版简单地提取存档,但您可能希望限制所需文件的数量,尤其是在自动化部署时。此外,评测代理是可自由重新分发的,因此您可以将其与应用程序一起发货,也可以将其安装在客户机器上进行故障排除。
要获得带有评测代理的最小软件包,远程集成向导会向您显示相应代理存档的下载链接,以及包含所有受支持平台的代理存档文件的下载页面。在JProfiler GUI中,调用会话->集成向导->新建服务器/远程集成,选择“远程”选项,然后继续执行远程安装目录步骤。

 特定JProfiler版本的HTML概述页面的URL为:

https://www.ej-technologies.com/download/jprofiler/agent?version=13.0.7

单个代理存档的下载URL的格式为:

https://download.ej-technologies.com/jprofiler/jprofiler_agent_<platform>_13_0_7.<extension>

其中platform对应于bin目录中的代理目录名,扩展名在Windows上为zip,在macOS上为.tgz,在Linux/Unix上为.tar.gz。对于Linux,x86和x64组合在一起,因此对于Linux x64,URL为:

https://download.ej-technologies.com/jprofiler/jprofiler_agent_linux-x86_13_0_7.tar.gz

代理存档包含所需的本机代理库以及jpenable,jpdump和jpcontroller可执行文件。归档文件中的可执行文件只需要Java 6作为最低版本,而评测代理可用于Java 5或更高版本。
在远程计算机上提取代理存档后,您看到的子目录如下所述。它们是各自目标平台上完整JProfiler安装的子集。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/838156.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FileZilla Server同时共享多个目录(手把手教你使用FileZilla Server同时设置多个目录)

网上的基本全是一句话带过怎么共享多个目录&#xff0c;没图很烦&#xff0c;所以我自己就写一个过程 目录 1、创建ftp用户并设置密码 1.1、进入用户管理 1.2、新建用户 1.3、设置密码 2、添加共享的目录 2.1、选择用户添加目录 2.2、给予用户访问权限 2.2.1、客户端访…

小程序服务器配置多大够用?

​  了解小程序服务器的大小和要求对于确保小程序的高效运行非常重要。下面将介绍小程序服务器的大小和要求&#xff0c;帮助您选择合适的服务器。 服务器费用 服务器费用因服务器类型、配置和带宽等因素而异。一般而言&#xff0c;小型小程序服务器的年费用在500元至2000元之…

SpringCloud之微服务API网关Gateway介绍

文章目录 1 微服务API网关Gateway1.1 网关简介1.2 Spring Cloud Gateway介绍1.3 Gateway特性1.4 Gateway核心概念1.4.1 路由1.4.1.1 定义1.4.1.2 动态路由 1.4.2 断言1.4.2.1 默认断言1.4.2.2 自定义Predicate 1.4.3 过滤器1.4.3.1 默认过滤器1.4.3.2 自定义Filter&#xff08;…

2023年第三届工业自动化、机器人与控制工程国际会议 | IET独立出版 | EI检索

会议简介 Brief Introduction 2023年第三届工业自动化、机器人与控制工程国际会议&#xff08;IARCE 2023&#xff09; 会议时间&#xff1a;2023年10月27 -30日 召开地点&#xff1a;中国成都 大会官网&#xff1a;www.iarce.org 2023年第三届工业自动化、机器人与控制工程国际…

【DMA】认识 DMA 及其工作流程

DMA&#xff08;Direct Memory Access&#xff09;&#xff0c;字面意思“直接访问内存”&#xff0c;无需 CPU 干预直接读写内存。传统CPU读写数据时&#xff0c;需要先将要使用的数据保存到 RAM&#xff0c;等要用时再从RAM 加载。 目录 一、传统CPU存取数据 二、认识DMA …

安防视频监控汇聚平台EasyCVR接入Ehome告警,公网快照不显示是什么原因?

智能视频监控汇聚平台TSINGSEE青犀视频EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等&#xff0c;视频监控管理平台…

openCV图像读取和显示

文章目录 一、imread二、namedWindow三、imshow #include <opencv2/opencv.hpp> #include <iostream>using namespace std; using namespace cv;int main(int argc,char** argv) {cv::Mat img imread("./sun.png"); //3通道 24位if (img.empty()) {std:…

App自动化测试|dom结构和元素定位方式

先来看几个名词和解释&#xff1a; dom: Document Object Model 文档对象模型 dom应用: 最早应用于html和js的交互。界面的结构化描述&#xff0c; 常见的格式为html、xml。核心元素为节点和属性 xpath: xml路径语言&#xff0c;用于xml 中的节点定位&#xff0c;XPath 可在 x…

ABAP 自定义搜索功能 demo1

ABAP 自定义搜索功能 demo1 效果&#xff1a; 双击选中行则为选中对应发票 实现 1定义 定义屏幕筛选参数 SELECTION-SCREEN BEGIN OF SCREEN 9020. SELECT-OPTIONS:s1_belnr FOR rbkp-belnr, s1_gjahr FOR rbkp-gjahr, s1_lifnr FOR rbkp-lifnr, s1_erfna FOR rbkp-erfnam, …

Go学习第四天

Interface空接口万能类型与类型断言机制 package mainimport "fmt"// interface{}是万能数据类型 func myFunc(arg interface{}) {fmt.Println("myFunc is celled....")fmt.Println(arg)// interface{} 该如何区分 此时引用的底层数据类型到底是什么&…

14-5_Qt 5.9 C++开发指南_基于HTTP 协议的网络应用程序

文章目录 1. 实现高层网络操作的类2. 基于HTTP协议的网络文件下载3.源码3.1 可是化UI设计3.2 mainwindow.h3.3 mainwindow.cpp 1. 实现高层网络操作的类 Qt 网络模块提供一些类实现 OSI 7 层网络模型中高层的网络协议&#xff0c;如 HTTP、FTP、SNMP等&#xff0c;这些类主要是…

linux Ubuntu 更新镜像源、安装sudo、nvtop

1.更换镜像源 vi ~/.pip/pip.conf在打开的文件中输入: pip.conf [global] index-url https://pypi.tuna.tsinghua.edu.cn/simple按下:wq保存并退出。 2.安装nvtop 如果输入指令apt install nvtop报错&#xff1a; E: Unable to locate package nvtop 需要更新一下apt&a…

MacBook Pro 16 M1 Max 升级 macOS Ventura 13.5 兼容测评

今天给大家带来了 MacBook Pro 16 M1 Max 升级 macOS Ventura 13.5 兼容 100 挑战赛 的视频&#xff0c;现在充电头再以文章的形式呈现给大家&#xff0c;让大家更清楚、直白的了解这款笔记本在升级系统后的兼容性如何。 MacBook Pro 16 M1 Max 配置了 140W 的 MagSafe 充电口&…

设备管理系统与物联网的融合:实现智能化设备监控和维护

在数字化时代&#xff0c;设备管理系统和物联网技术的融合为工业企业带来了巨大的变革和创新。本文将探讨设备管理系统与物联网的融合&#xff0c;重点介绍设备健康管理平台在实现智能化设备监控和维护方面的关键作用和优势。 一、设备管理系统与物联网的融合 随着物联网技术的…

37.利用linprog解 有约束条件多元变量函数最小值(matlab程序)

1.简述 linprog函数主要用来求线型规划中的最小值问题&#xff08;最大值的镜像问题&#xff0c;求最大值只需要加个“-”&#xff09; 2. 算法结构及使用方法 针对约束条件为Axb或Ax≤b的问题 2.1 linprog函数 xlinprog(f,A,b) xlinprog(f,A,b,Aeq,beq) xlinprog(f,A,b,Aeq,…

PROFINET转ETHERCAT协议网关三菱plc支持ethercat吗

捷米特JM–ECAT-PN是自主研发的一款 PROFINET 从站功能的通讯网关。该产品主要功能是将 PROFINET 网络和 ETHERCAT 网络连接起来。 捷米特JM-ECAT-PN连接到 PROFINET 总线中做为从站使用&#xff0c;连接到 ETHERCAT 总线中做为从站使用。 3.技术参数 PROFINET 技术参数 网关…

软件测试界扎心的谣言:为什么说功能测试是巨坑?

​ 前言 一般而言&#xff0c;想要持续在行业内发展&#xff0c;会选择继续提升自己的测试技能&#xff0c;而目前自动化测试作为业内最主流的技术&#xff0c;往后发展可以进阶到测试开发&#xff0c;但前提条件还是要掌握到足够好的自动化测试技术才行。包括说编程语言的学习…

918. 环形子数组的最大和;2531. 使字符串总不同字符的数目相等;1238. 循环码排列

918. 环形子数组的最大和 核心思想&#xff1a;其实这题不加环形很好做&#xff0c;就是一个动态规划或者贪心就能够解决。加了环形我们应该怎么考虑呢&#xff0c;无非就是两种&#xff0c;第1种是子数组只包含首尾的一个&#xff0c;我们直接求子数组的最大连续和即可&#…

springboot+vue农产品特产商城销售平台_50kf2 多商家

随着我国经济的高速发展与人们生活水平的日益提高&#xff0c;人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下&#xff0c;人们更趋向于足不出户解决生活上的问题&#xff0c;南阳特产销售平台展现了其蓬勃生命力和广阔的前景。与此同时&#xff0c;为解决…

【Docker晋升记】No.1--- Docker工具核心组件构成(镜像、容器、仓库)及性能属性

文章目录 前言&#x1f31f;一、Docker工具&#x1f31f;二、Docker 引擎&#x1f30f;2.1.容器管理&#xff1a;&#x1f30f;2.2.镜像管理&#xff1a;&#x1f30f;2.3.资源管理&#xff1a;&#x1f30f;2.4.网络管理&#xff1a;&#x1f30f;2.5.存储管理&#xff1a;&am…