当前位置: 首页 > news >正文

Java问题诊断工具——JVisualVM

这篇文章源自一次加班改bug的惨痛经历=[,,_,,]:3

负责的一个项目占用不断增加,差点搞崩服务器(╥﹏╥)……

一下子有点懵,不能立刻确定是哪里导致的问题,所以决定好好研究下这个之前一直被我忽视的问题诊断工具🔧——JVisualVM

嘿嘿我们开始吧(。・ω・。)ノ

简介

JVisualVM是一款支持对CPU、内存运行进行采样、配置的可视化的界面

基本操作流程

  1. 打开JVisualVM

命令行中输入jvisualvm

然后就会弹出如下图形界面

  1. 查看监视模块

JVisualVM界面的左侧会出现正在运行中的项目,单机选择一个项目,右侧就会出现这个项目的概况

在右侧试图中选择“监视”,下方会出现该项目运行参数详情🔎(包括CPU使用情况,堆/Metaspace使用情况,当前项目的类详情,以及线程使用详情)

举个🌰

拿我这次遇到的问题举个例子

我在本地运行这个出问题的项目,打开该项目的监视模块,发现其他基本正常,但是线程数在不断增加(如下两张图的线程数的对比,9分钟活动线程就从21,增加到了99),这应该就是导致内存不断增加的原因。

开始监视:

9分钟后:

于是在确定了问题可能出现的几个位置后,我分别进行注释,然后观察注释前后,项目执行时JVisualVM中监测模块的数据变化……

直到当我注释其中一个位置时,发现线程数不再一直增加了

longlonglong……ago(大概也就一个世纪吧=_=)

只增加了3个,所以问题基本就确定了,后面就开始吭哧吭哧改代码叻(_ _).。o○就不啰嗦叻

扩展资料💾

由于有后续工作排期,找到了问题就没有再继续深入了,想要深入的盆友可以参考官方网站

https://visualvm.github.io/index.html

http://www.lryc.cn/news/42035.html

相关文章:

  • Python3实现简单的车牌检测
  • 基于支持向量机SVM多因子测量误差预测,支持向量机MATLAB代码编程实现
  • 新农具时代,拼多多的进击与本分
  • 质量工具之故障树分析FTA(2) - FTA的基本概念
  • 《高质量C/C++编程》读书笔记二
  • 常用的美颜滤镜sdk算法
  • 动态SQL必知必会
  • DML编程控制
  • 关于肺结节实时的目标检测
  • 利用 Rainbond 云原生平台简化 Kubernetes 业务问题排查
  • C++中的future和promise使用方法
  • Vue项目创建
  • 2 Vue组件化编程
  • 使用GPT-4生成QT代码
  • Golang每日一练(leetDay0013)
  • 7个Python中的隐藏小技巧分享
  • 学习系统编程No.8【bash实现】
  • 2023年顶级编程语言趋势
  • 网络安全之认识勒索病毒
  • C语言手撕一个Hash表(HashTable)
  • 代码随想录第二十七天(669、108、538、回溯算法介绍)
  • 【Leetcode】设计循环队列
  • 【Linux】浅谈shell命令以及运行原理
  • 【shell脚本】nginx服务管理及存活检测脚本实战
  • web服务器—nginx
  • 网络安全工具大合集
  • 什么是SHA256?比特币是如何应用SHA256算法的?
  • JDK20正式发布了GA版本,短期维护支持,以及JDK21预览
  • .NET/C#/GC与内存管理(含深度解析)
  • Java开发 | 内部类 | 静态内部类 | 非静态内部类 | 匿名内部类