如何进行堆栈分析

本文介绍了如何在Windows和Linux环境下进行Java程序的堆栈分析。通过JDK提供的`jps`和`jstack`工具,可以获取程序运行时的详细信息,帮助定位程序卡顿或错误的原因。在Windows中,使用`jstack`将输出记录到文件,而在Linux上,需要先找到进程号,然后使用`jstack`导出日志,以便进一步分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.平常会遇到程序卡的时间很久,不知道什么原因,有可能是请求慢,或者是出错了,或者是服务繁忙

一、windows环境下

      1.必须有JDK,如果配置了环境变量则可以直接用cmd命令进入DOS窗口,

         jps查看现现行的程序,如:1680 emp ,表示emp 运行的进程号,运行程序的时候,     

        输入jstack 1680 > c ://a.txt ,表示会把这个程序的运行记录打到a.txt文件中,

        可以运行多次不同的文件,则会输出多个不同进程的文件记录,最后查看文件日志分析不变的记录是在做什么。



二、linux环境

   1.同样必须有JDK,直接解压,可以配置环境变量 export  path=$path: /opt/jdk/bin, 

    2.如果不配置环境变量也可以,解压压缩包 tar -xvf xxx.tar.gz , -x表示解压,-v表示解压的详细过程,-f表示解压的文件

    3.直接到jdk下的bin文件下,有很多程序,如:jps ,jstack

    4.执行查看进程,ps -ef | grep procname="xxxx"

    5.输出日志./jstack 进程号 > 输出路径 /opt/log/a.txt ,一样可以得到运行的日志记录,再进行分析,如果运行不了,可能用户没有权限,需要切       换用户 su - 用户名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值