---
title: 热点分析火焰图
description: "采集某些时刻CPU、CYCLES、LOCK、CACHE_MISSES、ALLOC事件的栈信息，统计当前JVM中的热点方法，以火焰图与反向火焰图的形式查询和呈现。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/devkit_24_rc3/cliuserguide/KunpengDevKitCli_0070.html
sourcePath: /source/zh/kunpengdevkithistory/devkit_24_rc3/cliuserguide/KunpengDevKitCli_0070.html
indexId: 71846a5ab643a6061f851004bb5448a1315c2423eff6d376947098c918a8ab2485
---
# 热点分析火焰图

#### 命令功能

采集某些时刻CPU、CYCLES、LOCK、CACHE_MISSES、ALLOC事件的栈信息，统计当前JVM中的热点方法，以火焰图与反向火焰图的形式查询和呈现。

不支持在容器宿主机采集容器内进程，若需采集容器内进程信息，请在容器中使用命令行工具。


#### 命令格式

```
devkit java-perf hotspot [-p {pid}] [-d <DURATION> ] [-e {CPU,ALLOC,CYCLES,CACHE_MISSES,LOCK}] [-i <INTERVAL> | --interval=INTERVAL]
```


#### 参数说明


**表1 参数说明**

| 参数 | 参数选项 | 说明 |
| --- | --- | --- |
| \-h/\-\-help | \- | 获取帮助信息。 |
| \-d/\-\-duration | \- | 设置采集时长，单位为秒，默认为20秒，取值范围1至300秒，可Ctrl+C停止任务采集并开始分析。 |
| \-i/\-\-interval | \- | 设置采样间隔，单位为毫秒，默认为10毫秒，取值范围1至1000毫秒。 |
| \-o/\-\-output | \- | 设置报告输出目录，默认为工具安装目录下的data目录。 |
| \-p/\-\-pid | \- | 指定采集热点方法的Java进程PID。 |
| \-e/\-\-event | CPU/ALLOC/CYCLES/CACHE\_MISSES/LOCK | 指定采样事件类型，默认为CPU。 CPU CYCLES LOCK CACHE\_MISSES ALLOC |


#### 使用示例

```
devkit java-perf hotspot -p 17329 -e CPU -d 60 -i 10 -o /opt
```

参数-p指定采集的进程号，参数-e CPU指定采集CPU事件类型的数据，参数-d 60采集时长为60秒，参数-i 10采样间隔为10毫秒，参数-o /opt指定报告输出目录为/opt。


返回信息如下：

```
JAVA HOTSPOT ANALYSIS(Press Ctrl+C to exit and generate the summary report)
The flame graph is generated in /opt/FlameGraph_CPU(31819)_20240612_104433.html.
```

任务生成火焰图html文件可使用浏览器查看，支持检索能力和反向火焰图。

图1 火焰图html

图2 反向火焰图

- 反向火焰图是以栈顶为起点，逐步回溯至栈底，将调用方法一致的调用栈进行聚合。
- 单击按钮可使火焰图上下翻转，单击按钮可是火焰图恢复至初始状态，单击按钮使火焰图按函数占比排序（默认为函数占比排序），单击按钮使火焰图按函数名称排序。
