网站制作怎么做图标,网站建设合同中的违约责任,合肥专业网站制作设计,软件开发外包方案核心价值
Woody是一款专注于Java应用性能问题诊断的工具#xff0c;旨在帮助开发者
定位高GC频率问题#xff0c;识别内存分配热点分析CPU使用率过高的代码路径追踪接口耗时瓶颈#xff0c;定位内部操作耗时占比诊断锁竞争问题#xff0c;支持精准优化针对特定业务接口/请…核心价值
Woody是一款专注于Java应用性能问题诊断的工具旨在帮助开发者
定位高GC频率问题识别内存分配热点分析CPU使用率过高的代码路径追踪接口耗时瓶颈定位内部操作耗时占比诊断锁竞争问题支持精准优化针对特定业务接口/请求的性能问题CPU、内存、耗时进行深度分析
代码仓库
https://github.com/happy-profiler/woody 目前发布第一版后续会不断丰富功能不断完善欢迎感兴趣同行使用提建议bugissue和pr。
适用环境
JDK版本支持JDK 1.8及以上操作系统 macOSLinux x64/arm64 低版本JDK和其他操作系统暂不支持
核心特性
基于命令行交互集成async-profiler生成采样样本和火焰图实现业务请求与火焰图样本的精确关联支持手动过滤无关业务入口提高采样精准率极低性能损耗适合生产环境使用代码少量借鉴自Arthas
支持中间件
SpringMVCDubboGrpcKafkaRocketMQ 后续将持续扩展支持更多中间件 快速开始
从项目release页面下载最新版本的woody-boot-xxx.jar启动工具java -jar woody-boot-1.0.0.jar选择目标Java进程编号进入命令交互界面输入stop结束退出 命令参考
单横杠-表示命令操作双横杠--表示参数后续要接参数值
prprofiling resource- 选择分析的业务入口
用于指定需要分析的业务入口资源可同时选择多种中间件的多个入口。
参数说明-ls列举当前应用的所有业务入口资源-lt列举当前应用支持的业务资源类型-s选择业务入口资源-us移除已选中的业务入口资源-lst列举已选择的业务入口资源类型列表未选择时为空-lss列举已选择的业务入口资源–type指定中间件类型支持上述5种类型–order指定中间件业务入口的资源编号多编号用英文逗号分隔不指定时表示选择该类型的所有入口资源peprofiling event- 选择采集事件类型
用于指定需要采集的性能事件类型对应async-profiler的4种火焰图类型。
参数说明-l列举当前应用支持的事件类型注部分应用可能不支持alloc取决于JDK版本和操作系统-s选择要采集的事件类型–cpuCPU事件参数为采样间隔ms–alloc内存分配事件参数为采样阈值kb–wall耗时事件参数为采样间隔ms–lock锁竞争事件参数为采样间隔ms-c清除已选中的事件类型支持同时选择多个事件类型将生成对应类型的火焰图 pfprofiling- 操作性能分析过程
用于控制async-profiler的启动、停止和状态查询。
参数说明start启动性能分析启动后需在30秒内触发已选择的业务入口请求否则启动失败stop结束性能分析status查询当前性能分析状态未运行/已运行时长–duration设置分析持续时间秒时间到后自动结束非必须可通过stop命令提前结束–file指定分析结束后生成的火焰图文件名默认生成在工具运行目录多事件时会自动添加类型前缀未指定时采样结果将被缓存供ts命令使用tstrace sample- 检索分析业务请求和样本生成火焰图
用于检索性能分析样本支持通过traceId定位特定请求或查看资源消耗TopN的请求。
参数说明-l列出采样样本需配合–id或–top参数-f生成火焰图需配合–id或–top参数-c清除缓存的前次分析样本数据–file指定生成的火焰图文件名配合-f参数使用–event指定分析事件类型当pe命令选择多个事件时必须指定单个事件时可省略–id指定traceId业务请求唯一标识检索对应请求的样本–top指定数量N检索资源消耗最多的前N个请求ID将显示样本数量、起止时间等信息traceId默认生成规则1~Long.MAX_VALUE间的随机数 可通过修改ParametricIdGenerator实现自定义traceId生成逻辑从业务上下文/参数/入口对象提取下个版本可通过命令及表达式从业务请求生成 如何本地编译及调试
本地编译: clone工程执行 mvn clean package -DskipTests boot模块生成的jar包就是工具包直接运行即可
调试: 待分析应用添加远程debug参数和端口 -agentlib:jdwptransportdt_socket,servery,suspendn,address5005 -Xdebug woody工程直接远程关联debug即可
火焰图查看
火焰图的具体查看方法请参考相关文档或通过AI工具学习。