背景
springboot项目启动慢,想知道启动过程中,线程都在干什么,使用jprofile的cpu视图-调用树功能进行分析;
服务端:跑java项目,部署在linux-x64服务上;
客户端:mac
部署jprofile
官网下载:https://www.ej-technologies.com/download/jprofiler/files
linux服务端:jprofiler_linux_14_0_2.tar.gz
1. 下载到/root目录下,并解压tar -xvf jprofiler_linux_14_0_2.tar.gz
2. 配置环境变量:vi ~/.bash_profile
JPROFILE_HOME=/root/jprofiler14.0.2
LD_LIBRARY_PATH=$JPROFILE_HOME/bin/linux-x64
PATH=$PATH:$JPROFILE_HOME/bin
3. 生效环境变量:source ~/.bash_profile
4.拷贝到libjprofilerti.so到/usr/lib64目录
cp /root/jprofiler14.0.2/bin/linux-x64 /usr/lib64/
5. 修改java启动参数
-agentpath:/root/jprofiler14.0.2/bin/linux-x64/libjprofilerti.so=port=8849,nowait
(这里这样配置就行了,网上说的其他的配置-agentlib:jprofilerti=port=8849 -Xbootclasspath/a:/root/jprofiler14.0.2/bin/agent.jar不需要加的,加了启动会报错)
6. 启动java项目,成功后,在日志中看到如下内容
JProfiler> Protocol version 66
JProfiler> Java 8 detected.
JProfiler> Don't wait for frontend to connect.
JProfiler> 64-bit library
JProfiler> Starting up without initial configuration.
JProfiler> Listening on port: 8849.
JProfiler> Enabling native methods instrumentation.
JProfiler> Can retransform classes.
JProfiler> Can retransform any class.
JProfiler> Native library initialized
JProfiler> VM initialized
mac客户端:jprofiler_macos_14_0_2.dmg
双击安装;
安装后根据提示获取许可证密钥(可试用10天);
开始使用吧......
参考文档
Spring Boot 项目启动慢排查: https://www.jianshu.com/p/14729d89e5d7
华为技术大佬教你使用Jprofile解析dump文件: https://zhuanlan.zhihu.com/p/109870776?utm_id=0