Java性能问题排查

1. Java 性能排查

  1. 使用JPS查看当前Java进程

    jps #查询需要排查的Java进程ID
    
  2. 查看Java进程内最耗费CPU的线程资源使用情况

    top -H -p <Java进程pid>ps -Lfp <Java进程pid>ps -mp <Java进程pid> -o THREAD, tid, time
  3. 根据第1步查询出的PID,通过jstack查询Java线程所对应的jstack的Java线程ID(需要将十进制转化为十六进制)

    1. printf "%x\n" <Java进程pid> #获取十六进制值
    2. jstack <Java进程pid> | grep nid=0x<Java线程ID>
    

2. Java常用性能排查命令

  1. jmap

    Jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。

    • 使用方法jmap -histo pid展示class的内存情况

    • 如果使用SHELL ,可采用jmap -histo <pid> > a.log日志将其保存到文件中,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。

    • 使用jmap -dump:live,format=b,file=outfile <pid> 可以将<pid>进程的内存heap输出出来到outfile文件里,再配合MAT(内存分析工具)。

    • 64位服务器或主机上使用需要使用如下方式:jmap -J-d64 -heap pid

      • jmap [ option ] pid
      • jmap [ option ] executable core
      • jmap [ option ] [server-id@]remote-hostname-or-IP
    • 使用jmap -permstat <pid>打印进程的类加载器和类加载器加载的持久代对象信息,输出:类加载器名称、对象是否存活(不可靠)、对象地址、父类加载器、已加载的类大小等信息;

    • 使用jmap -heap <pid>查看进程堆内存使用情况,包括使用的GC算法、堆配置参数和各代中堆内存使用情况。

  2. jstat

    1. 语法

      jstat [ generalOption | outputOptions vmid [interval[s|ms] [count]] ]

      • vmid是虚拟机ID,在Linux/Unix系统上一般就是进程ID
      • interval是采样时间间隔
      • count是采样数目
    2. 用法

      • jstat -gc pid #主要查看FGC、YGC的总次数和累计耗时
      • jstat -gcutil pid #功能和gc 一样,但是是百分比的形式,读取更友好
      • jstat -gccapacity pid #读取各个代区的当前容量、最大容量、当前使用量等信息
    3. 示例

      例如下面输出的是GC信息,采样时间间隔为250ms,采样数为4:

      jstat -gc 21711 250 4
      

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

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

相关文章

基于OpenCV和深度学习实现图像风格迁移

文章目录 引言一、准备工作二、代码实现解析1. 读取和显示原始图像2. 图像预处理3. 加载和运行风格迁移模型4. 处理输出结果 三、效果展示四、扩展应用五、总结 引言 图像风格迁移是计算机视觉中一个非常有趣的应用&#xff0c;它可以将一幅图像的内容与另一幅图像的艺术风格相…

SwiftUI隐藏返回按钮保留右滑手势方案

SwiftUI 隐藏返回按钮但保留右滑返回手势的方案 在 SwiftUI 中&#xff0c;如果你使用&#xff1a; .navigationBarBackButtonHidden(true)可以隐藏系统返回按钮&#xff0c;但会发现 右滑返回手势&#xff08;边缘返回&#xff09;失效了。 这是因为 SwiftUI 底层使用了 UI…

练习小项目11:鼠标跟随小圆点

&#x1f3af; 项目目标&#xff1a; 当鼠标在页面移动时&#xff0c;小圆点会跟随鼠标移动的位置&#xff0c;带有平滑动画。 &#x1f9e0; 实现思路&#xff1a; HTML&#xff1a; 页面内放一个 div 作为圆点。 CSS&#xff1a; 圆点使用绝对定位&#xff0c;初始在屏幕…

华为:eSight网管平台使用snmp纳管交换机

一、SNMP简介 SNMP&#xff08;Simple Network Management Protocol&#xff0c;简单网络管理协议&#xff09;是一种用于管理和监控网络设备的标准协议&#xff0c;广泛应用于路由器、交换机、服务器、打印机等网络设备的管理场景。以下是对它的简单介绍&#xff1a; 1、SNM…

【单片机期末】接口及应用

一、C51语言基础 【考点】存储类型 data是低128字节 code是ROM idata是高128字节 pdata是外部RAM可以用R0 R1寻址的&#xff0c;也叫页 xdata是外部RAM&#xff0c;可以用DPTR寻址或总线扩展 其中data、code、idata、pdata、xdata均为字节类型的&#xff0c;bdata是对位寻址的 …

C#迭代器

文档 C# Iterators 关键内容 普通接口 public interface IEnumerable {IEnumerator GetEnumerator(); }public interface IEnumerator {object Current { get; }bool MoveNext();void Reset(); }泛型接口 public interface IEnumerable<out T> : IEnumerable {IEnum…

Java多线程:为什么wait()必须用循环而非if?

在Java多线程编程中&#xff0c;调用wait()方法时应使用**循环结构&#xff08;while循环&#xff09;**而非if块&#xff0c;这是由线程同步的特性和潜在风险决定的。以下是具体原因和实现规范&#xff1a; 一、正确调用方式 synchronized (lockObject) {while (!condition) …

Fiori 初学记录----怎么调用后端系统odata 服务实现简单的CURD

1.对上面的内表做一个简单的增删改查的操作 SEGW 创建odata 项目&#xff0c;实现增删改查方法。如下图 2.odata 准备完毕后&#xff0c;打开vscode 下一步等待项目生成 把下面这个目录的视图&#xff1a;替换一下&#xff1a; View1.view.xml 代码&#xff1a; <…

OpenCV CUDA模块图像变形------对图像进行GPU加速的仿射变换函数warpAffine()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 该函数用于对图像进行 GPU 加速的仿射变换&#xff08;Affine Transformation&#xff09;&#xff0c;是 cv::warpAffine 的 CUDA 版本。支持平…

语音增强方法

一、音量增强 音量增强&#xff0c;顾名思义就是音量的调大和调小&#xff0c;通过对音量进行增强可以使得模型更好的泛化。防止数据只有小音量时&#xff0c;当有大音量传入时模型不能很好的进行识别。 下面是我对音量增强生成频谱图进行可视化的结果 上面的一个图片是音量…

内网渗透测试技巧与利用操作手册(SMB / MSSQL / LDAP)

SMB 枚举与利用清单 &#x1f50d; SMB 枚举与连接 # 尝试空会话连接&#xff08;Null Session&#xff09; smbclient -N -U "" -L \\<IP> smbclient -N -U "test" -L \\<IP> smbclient -N -U "Guest" -L \\<IP># 下载共享…

ADB(Android Debug Bridge)Android官方调试工具及常用命令

ADB的定义 ADB&#xff08;Android Debug Bridge&#xff09;是Android官方提供的调试工具&#xff0c;属于Android SDK的一部分。它通过命令行与Android设备通信&#xff0c;支持安装应用、调试、文件传输、日志抓取等功能&#xff0c;适用于开发、测试及高级用户场景。 ADB工…

再现重大BUG,微软紧急撤回Win 11六月更新

BUG年年有&#xff0c;今年特别多&#xff01; Windows 11发布这近4年来&#xff0c;咱们算是一路见证了其「要么在修复BUG&#xff0c;要么在修复BUG路上」这么一件壮举。 最新的6月Windows 11 24H2更新&#xff08;版本号KB5060842&#xff09;&#xff0c;微软带来了多项改…

ROS2 工作空间中, CMakeLists.txt, setup.py和 package.xml的作用分别是?

提问 ROS2 工作空间中, CMakeLists.txt&#xff0c; setup.py和 package.xml的作用分别是&#xff1f; 回答 在一个 ROS 2 包&#xff08;package&#xff09;里&#xff0c;这三个文件各司其职&#xff1a; package.xml 作用&#xff1a;声明包的元信息和依赖关系&#xff…

Untiy打包安卓踩坑

Untiy 版本&#xff1a;unity6.1 运行环境&#xff1a;Win11 报错一&#xff1a; Assembly ‘Assets/ExternalDependencyManager/Editor/1.2.183/Google.IOSResolver.dll’ will not be loaded due to errors: 解决方法&#xff1a;通过在 Unity Hub 中下载 iOS 包来解决 报错…

2025最新版!Windows Python3 超详细安装图文教程(支持 Python3 全版本)

大家好&#xff0c;我是你们的编程搬砖工~ 今天给大家安排一篇超级详细、超接地气、纯小白友好的《Python 安装教程 for Windows》&#xff0c;从下载到安装&#xff0c;从环境变量到验证&#xff0c;手把手带你装好 Python&#xff0c;不管你是 Python3.7、3.9、3.10 还是 3.1…

【IEEE/EI/Scopus检索】2025年第五届机器学习与大数据管理国际会议 (MLBDM 2025)

2025年第五届机器学习与大数据管理国际会议 (MLBDM 2025) 2025 5th International Conference on Machine Learning and Big Data Management(MLBDM 2025)会议地点&#xff1a;南京&#xff0c;中国 时间&#xff1a;2025年12月26日- 28日 ● 会议简介 2025年第五届机器学习…

前端实现ios26最新液态玻璃效果!

先看效果图 实现步骤 先定义玻璃元素和液态滤镜 <!--玻璃容器--> <div class"glass-container"><!--使用液态滤镜--><div class"glass-filter"></div><!--边沿效果--><div class"glass-specular">…

麒麟系统集成开发环境Kylin-IDE初体验,菜鸟小白入门教程

一、安装Kylin-IDE 1、打开应用商店&#xff0c;转到“软件”->“开发”页面&#xff0c;找到“Kylin-IDE”&#xff0c;点下载。&#xff08;也可以在搜索栏搜索Kylin-IDE&#xff09; 2、等待Kylin-IDE下载并自动安装完成。 3、双击桌面的Kylin-IDE图标。 4、自动弹出“开…

Python爬虫实战:研究Bleach库相关技术

一、引言 1.1 研究背景与意义 随着互联网的快速发展,网络上的数据量呈爆炸式增长。网络爬虫作为一种自动获取网页内容的技术,能够高效地从互联网上收集所需信息,为数据分析、信息检索、舆情监测等应用提供基础。然而,爬取到的网页内容往往包含大量的 HTML 标签、JavaScri…