内存分析
java内存分析一般采用Java jmap dump下系统内存文件,使用 jmat 进行分析。
线程分析
线程栈一般通过 jstack 得到。
cpu分析
火焰图
arthas
火焰图做为cpu调试的神器,最早是openresty中被大神春哥开始应用,之后慢慢普及到各个语种当中,Java目前用的还不是很多。所以这里码字普及一下火焰图的安装和一些用法
安装步骤 首先需要下载火焰图工具
下载安装 FlameGraph
下载地址: https://github.com/cobblau/Fl...
这个是火焰图生成工具
安装之后 【java并发-一些系统分析工具】还需要安装一个工具:perf-map
这里的perf-map 需要Java版本至少1.7以上
下载地址:http://www.github.com/jvm-pro...
安装命令 cmake.
make
安装完之后需要设置jvm 参数 -XX:+PreserveFramePointer jvm参数
之后就是采集结果阶段: 使用命令之后就是采集结果阶段:
使用命令
perf record -a -g -p 65269 -F 99 -- sleep 30
java -cp attach-main.jar:$JAVA_HOME/lib/tools.jar net.virtualvoid.perf.AttachOnce PID
perf script | stackcollapse-perf.pl | flamegraph.pl > process.svg
火焰图生成结果: 条越长越耗cpu,每一条点击进去都可以看到自己的子调用栈
推荐阅读
- java|你们对移动端架构有怎样的思考()
- 我的转行之路(Java开发从入门到放弃)之一(从培训班到就业)
- 用java做一个js引擎
- Java8新特性及代码示例
- 代付|微信公众号如何实现支付功能()
- Java毕业设计项目实战篇|Java项目:企业人事管理系统(java+SSM+jsp+mysql+maven)
- java|使用Spring连接mysql数据库
- Leetcode|leetcode-蜡烛之间的盘子(经典空换时)
- java|== 和 equals 的区别你知道吗()