背景:
最近启动项目,特别慢,尤其在中间部分会卡住几分钟,并且不打印任何日志
问题排查:
针对上面的问题,需要使用jdk自带的打印堆栈信息命令排查,这里我们采用命令跟idea工具两种方式
方式1-采用命令查看:
这边采用windows系统执行命令,linux系统命令也基本相似
主要命令为jps,jstack
1.启动程序
2.cmd窗口执行命令:jps
上面画红线的是启动程序的pid
3.cmd窗口执行命令:jstack pid
窗口看堆栈不是很好看,可以执行后,存入文件中看
4.打开文件,搜索main,查看主程序在干啥动作
从上图可以看出,主程序在连接ftp卡住了
5.接下来可以测试下ftp连接或者注释掉这个,在测试下速度
经测试,速度非常快
方式2-采用idea查看:
1.启动程序
2.点击idea左下角的照相机图标
3.右边可以看到堆栈信息
这个更清晰,直接显示主程序在干啥,直接一看就知道原因了