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. 针对sarasa-shuffle.woff2加密字体进行解密

    本文针对的是类似于sarasa-shuffle.woff2加密字体的一个研究. 字体加密是使用Unicode编码将其映射到不同的字体显示的一种前端显示加密手段.在反爬虫中能够起到较好的效果,爬虫将只能 ...

  2. 产品代码都给你看了,可别再说不会DDD(二):DDD概念大白话

    这是一个讲解DDD落地的文章系列,作者是<实现领域驱动设计>的译者滕云.本文章系列以一个真实的并已成功上线的软件项目--码如云(https://www.mryqr.com)为例,系统性地讲 ...

  3. shiro框架基本概念介绍

    什么是Shiro: Shiro 是一个强大灵活的开源安全框架,可以完全处理身份验证.授权.加密和会话管理 Shiro的核心功能包括: 身份验证(Authentication):验证用户的身份,确保用户 ...

  4. Codeforces Round #576 (Div. 2)

    A - City Day 题意:给n,x,y和数组a[n],求最小的下标d,使得有a[d-x,d-x+1,--d-1,d+1,d-1,d+1,--d+y-1,d+y]都比a[d]小,若d-x<= ...

  5. pycurl库使用详解

    要使用pycurl库 要初始化一个curl对象 c = pycurl.Curl() 设置选项 c.setopt

  6. 自定义注解,实现请求缓存【Spring Cache】

    前言 偶尔看到了spring cache的文章,我去,实现原理基本相同,哈哈,大家可以结合着看看. 简介 实际项目中,会遇到很多查询数据的场景,这些数据更新频率也不是很高,一般我们在业务处理时,会对这 ...

  7. 破局DevOps|8大北极星指标指引研发效能方向

    放弃那些动辄就上百个的研发度量指标吧,8大北极星指标指引你的研发效能方向,1个北极星指标公式让你清晰了解​公司研发效能现状. 每当研发效能/DevOps业务做规划的时候,有的人就会毫无头绪,不知道如何 ...

  8. 《流畅的Python》 读书笔记 230926(第一章后半部分)

    1.2 如何使用特殊方法 特殊方法的存在是为了被 Python 解释器调用的,你自己并不需要调用它们 就是说通常你都应该用len(obj)而不是obj.__len()__,无论是系统预置的,还是你自己 ...

  9. Oracle CloudWorld 2022 - 使用Oracle MAA实现应用程序的连续可用性

    每每谈到Oracle MAA,大家条件反射般就会想到Oracle的RAC和ADG等核心选件,当然,这些技术有口皆碑,也的确是MAA的构建基础,但本文我们不再过多谈这些耳熟能详的技术,而是来跟大家探讨下 ...

  10. 开源.NetCore通用工具库Xmtool使用连载 - 扩展动态对象篇

    [Github源码] <上一篇> 介绍了Xmtool工具库中的图形验证码类库,今天我们继续为大家介绍其中的扩展动态对象类库. 扩展动态对象是整个工具库中最重要的一个设计.在软件开发过程中, ...