用途:该技能用于 Java 应用性能剖析的第一步——采集数据以度量潜在性能问题。它提供自动化的环境搭建(async-profiler v4.0)、问题驱动的交互式剖析脚本,以及针对 CPU 热点、内存泄漏、锁竞争、GC 问题和 I/O 瓶颈的数据采集,并提到使用 JEP 518(协作采样)与 JEP 520(方法计时)以降低开销。
主要能力:以剖析 JVM 参数运行应用(run-java-process-for-profiling.sh);提供交互式剖析脚本 profiler/scripts/profile-java-process.sh;建立目录结构 profiler/scripts/、profiler/results/、profiler/current/;自动检测操作系统与架构并下载 async-profiler;支持 CPU、内存、锁、GC、I/O 剖析模式;输出带时间戳的火焰图与 JFR 结果。
使用方式:先阅读 references/161-java-profiling-detect.md 中的脚本模板与设置说明;创建 profiler/scripts 与 profiler/results 目录,逐字复制 setup/profile 脚本并用 chmod +x 赋予可执行权限;以所需剖析 JVM 参数启动 Java 进程,确认目标进程可被剖析器附加;随后采集 CPU/内存/锁/GC/I/O 数据并生成带时间戳的火焰图与 JFR 输出。
适用场景:需要改进代码、应用剖析、重构代码或为代码添加剖析支持时。
限制:必须逐字复制 bash 脚本模板,不得修改、解释或增强;需确保应用以剖析兼容的 JVM 参数运行,并在附加剖析器前验证 Java 进程正在运行;若请求范围不明确,应先停止并提问澄清;若缺少必要输入、文件或工具,应报告缺失内容并询问是否继续提供设置指导。具体脚本内容与命令细节以参考文档为准,本资料未提供完整代码。