A Java profiler base on jvmti, with chrome flamegraph and slow method analysis. Java性能分析利器,欢迎加QQ群学习交流(837682428)
MIT License
一个基于JVMTI技术的Java诊断工具,支持快速分析JVM线程CPU时间及方法调用栈,集成了灵活好用的动态火焰图组件,Java服务性能优化利器。
当你遇到以下类似的问题时,Flare Profiler可以帮助你解决问题:
Flare Profiler 0.1.0 只是一个雏形,有很多好点子还没有细化下来,想收集了解大家在Java性能调优过程遇到的一些疑难问题。 接下来可能做的功能:
关于github下载慢的问题,建议加QQ群(837682428),从群共享文件下载。
使用文档: 入门指南 Quick Start
Flare Profiler 系统交互图如下:
以下对比常见工具的JVM CPU 诊断功能:
项目 | JProfiler | Async Profiler | Flare Profiler |
---|---|---|---|
内存占用 | 大于512MB | ? | 小于20MB |
火焰图 | 不支持 | 支持,静态SVG | 支持,动态缩放、拖动查看 |
方法调用时序 | 不支持 | 不支持 | 支持直观查看方法执行过程 |
实时/离线分析 | 支持实时查看,Agent断开后不能分析 | 不支持实时查看 | 支持实时和离线分析 |
稳定性 | 压测时JVM可能Crash | ? | 压测时仍然稳定运行 |
兼容性 | 支持多种平台 | 不支持Windows | 支持Windows、Linux、macOS |
1、可能超出最大可打开的文件数量(此问题已经解决)
save summary info failed: Too many open files (os error 24)
原因:
Flare Profiler为每个JVM线程创建两个文件,如果JVM线程太多,将导致打开或者保存文件失败。
解决办法:
ulimit -a #查看系统的文件句柄数量设置,如果太少,请改大一点
macOS参考命令:
sudo launchctl limit maxfiles 999999999 999999999
sudo ulimit -n 65535
ulimit -n 65535
2、方法调用栈火焰图(Call Graph标签页)加载异常 火焰图组件来源于Chrome浏览器调试工具项目(devtools),仅支持在Chrome浏览器77以上版本运行,如果出现显示异常请升级Chrome到最新版本或者使用Protable版本。
Links:
Flare Profiler 开源交流QQ群: 837682428,欢迎加群一起探讨学习Java & Rust !