1 概述

1.1 简介

VisualVM is a visual tool integrating commandline JDK tools and lightweight profiling capabilities. See https://visualvm.github.io for details, downloads and documentation.

VisualVM 是一款集成了命令行JDK工具和轻量化分析能力的可视化工具。

详情、下载、文档请参见 https://visualvm.github.io

1.2 获取本工具

Use Apache Ant 1.9.9 or above and Oracle JDK 8 to build VisualVM from this repository.

1.3 获取源码

First download or clone this repository into directory visualvm. There are two project suites included:首先下载或克隆这个仓库(https://github.com/oracle/visualvm)到visualvm目录下。这里包含有2个项目套件:

  • visualvm (visualvm/visualvm) - suite for the core VisualVM tool
  • plugins (visualvm/plugins) - suite for the VisualVM plugins available in Plugins Center

1.4 如何运行

1.4.1 ant 方式

To run VisualVM, use ant run command in the visualvm/visualvm directory.

1.4.2 windows cmd 方式

本节以 Windows 10、JDK=1.8 ,VisualVM Version = 2.1.5 为例。

  • Step1 编辑${VisualVM_HOME}/etc/visualvm.conf文件,设置JDK路径
#visualvm_jdkhome="/path/to/jdk"
visualvm_jdkhome="D:\Program\Java\jdk1.8.0_261"

此步骤是为了防止启动失败、并报错Connot find Java 1.8 or higher

  • Step2 双击${VisualVM_HOME}visualvm_215\bin\visualvm.exe启动

注:启动后运行过程中的软件数据存放于C:\Users\${USER}\AppData\Roaming\VisualVM,此目录可按自己需要进行重置、清理。

Y JVM 线程分析工具

  • jstack

    • jstack是JDK自带的一个命令行工具,用于生成Java线程转储文件。它可以显示线程状态,锁信息,监视死锁等。
  • VisualVM
  • Eclipse MAT
    • Eclipse MAT(Memory Analyzer Tool)是一个专业的Java内存分析工具,可以分析堆转储文件,查找内存泄漏问题,分析对象引用关系等。
    • https://eclipse.dev/mat/
  • Arthas
  • YourKit Java Profiler
    • YourKit是一个商业化的Java性能分析工具,提供了线程转储分析功能,可以快速定位线程问题,同时还提供了内存和CPU分析功能。
    • https://www.yourkit.com/java/profiler/
  • FastThread
    • FastThread是一款针对Java线程分析的工具,可以帮助用户分析线程转储文件,查找线程问题,识别性能瓶颈等。
    • https://fastthread.io/
  • Glowroot |
    • Glowroot是一个开源的Java应用性能监控工具(Open source Java APM),可以生成线程转储文件,并提供了一些线程分析功能,如线程状态、锁信息等。
    • https://glowroot.org/
  • spotify thread dump analyzer

这些工具都提供了线程转储分析的功能,可以帮助开发人员定位线程问题和优化应用性能。具体选择哪个工具,可以根据自己的需求和喜好进行选择。

X 参考文献

[JDK/APM] 应用诊断工具之VisualVM的更多相关文章

  1. 八、jdk工具之JvisualVM、JvisualVM之二--Java程序性能分析工具Java VisualVM

    目录 一.jdk工具之jps(JVM Process Status Tools)命令使用 二.jdk命令之javah命令(C Header and Stub File Generator) 三.jdk ...

  2. <JVM下篇:性能监控与调优篇>03-JVM监控及诊断工具-GUI篇

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...

  3. <JVM下篇:性能监控与调优篇>01-概述篇-02-JVM监控及诊断工具-命令行篇

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...

  4. java 诊断工具——Arthas

    该说不说!小编做的这些功能,最讨厌的就是优化!某些前辈大佬写的代码小辈我实在不敢恭维!那逻辑!那sql! 接下来!今天的主角就登场了,阿里巴巴最近开源出来的一个针对 java 的工具,主要是针对 ja ...

  5. Alibaba Java诊断工具Arthas之快速安装和简单使用

    Alibaba Java诊断工具Arthas简单介绍 : 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 1.这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception ...

  6. JDK中ThreadDump诊断Java代码中的线程死锁问题

    多线程的死锁..死锁不是死了而是线程互相等待... 在项目中可能就是在几十万行的代码中存在一个死锁的问题,如何发现这个问题并且解决这个问题. JavaJDK为我们提供了一个诊断工具叫做ThreadDu ...

  7. (转)权威支持: 选择正确的 WebSphere 诊断工具

    权威支持: 选择正确的 WebSphere 诊断工具 原文:https://www.ibm.com/developerworks/cn/websphere/techjournal/0807_supau ...

  8. Arthas Alibaba 开源 Java 诊断工具

    Arthas 用户文档 English Docs Arthas(阿尔萨斯) 能为你做什么? Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱. 当你遇到以下类似问题而束手无策时,A ...

  9. WebSphere应用服务器内存泄漏探测与诊断工具选择最佳实践

    内存泄漏是比较常见的一种应用程序性能问题,一旦发生,则系统的可用内存和性能持续下降:最终将导致内存不足(OutOfMemory),系统彻底宕掉,不能响应任何请求,其危害相当严重.同时,Java堆(He ...

  10. 使用诊断工具观察 Microsoft.Extensions.DependencyInjection 2.x 版本的内存占用

    目录 准备工作 大量接口与实现类的生成 elasticsearch+kibana+apm asp.net core 应用 请求与快照 Kibana 上的请求记录 请求耗时的分析 请求内存的分析 第2次 ...

随机推荐

  1. jmeter对请求响应结果进行整段内容提取方法

    通过正则表达式提取器,将上一个请求(A请求)响应数据中的整段内容提取,传给下一个需要该提取数据的请求(B请求). 1. 请求接口响应结果 2. 添加正则表达式提取器 设置变量名为"tt&qu ...

  2. nflsoj 5926 素数环

    题目非常简单,只需要判断相邻两个数的和是不是素数,素数的判断参考数论 不过要注意的一点是题目说的是一个环,所以首尾两个数的和也要是素数 我在输出的时候加上了 is_prime(path[n-1]+1) ...

  3. [信息安全] 加密算法:md5摘要算法 / sha256算法

    1 MD5 1.1 算法定义 MD5的全称为 Message-Digest Algorithm,是一种被广泛使用的单向散列函数.属于Hash算法中一种比较重要算法--具有单项加密.加密结果唯一.安全性 ...

  4. P1551 亲戚 && #569. 【例4-7】亲戚(并查集)

    P1551 亲戚 题目链接:落谷 题目链接:TFLS OJ 落谷题解(具体分析见慎入潜出P239) #include<bits/stdc++.h> using namespace std; ...

  5. 如何对MongoDB进行测试

    一.环境搭建 关于环境搭建,最好的搭建方式,当然是脚本一键式搭建 我这里是centos6 x64版本的linux上进行构建,这个linux版本现在应该是大部分的主流服务器的标配版本 下面是安装脚本的编 ...

  6. 《Python魔法大冒险》 001 序章:少年小鱼的不平凡一天

    在一个普通的城市里,生活着一个名叫小鱼的少年.他是一名初中生,但在班级里,他的学习成绩总是垫底.同学们经常取笑他,有时甚至戏称他为"倒数王". 放学后,小鱼一个人走在回家的路上,他 ...

  7. xv6 进程切换中的锁:MIT6.s081/6.828 lectrue12:Coordination 以及 Lab6 Thread 心得

    引言 这节课和上一节xv6进程切换是一个完整的的进程切换专题,上一节主要讨论进程切换过程中的细节,而这一节主要讨论进程切换过程中锁的使用,所以本节的两大关键词就是"Coordination& ...

  8. Node.js vs. Spring Boot:Hello World 性能对决,谁更快一点?

    前言: Spring Boot 在 Java 生态中备受欢迎,它是一款基于 Java 构建的轻量级服务端框架,主要用于 Web 服务.Spring Boot 的应用使得创建各类基于 Spring 的企 ...

  9. 「codeforces - 1633F」Perfect Matching

    link. 首先所有的 activated nodes 组合成了一棵以 \(1\) 为根的有根树.询问即求由 activated nodes 组成的树的最大匹配.对于树上最大匹配有一个贪心策略:自底向 ...

  10. Solution -「洛谷 P1852」跳跳棋

    Description Link. 在一个数轴上给你三个点,移动方法是彼此为中点进行跳跃,不能同时越过两颗棋子. 给出初始状态和目标状态,问能否从初始状态跳到目标状态.若能,输出最少步数. 棋子之间互 ...