> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 使用工具分析性能

使用以下分析工具检查系统性能：

* [函数跟踪器（ftrace）](#函数跟踪器ftrace)：调试和分析延迟及性能问题
  > **注意**
  >
  > 要启用 ftrace，请确认 `arch/arm64/configs/qcom.config` 中的内核配置 `CONFIG_FTRACE` 已设置为 `y`。如果未设置，ftrace 将无法工作。
* [LTTng](#linux-trace-toolkit-next-generation-lttng)：同时跟踪 Linux 内核和用户空间
* [Trace Compass（Eclipse）](#trace-compass-by-eclipse)：以图形方式可视化性能问题
* [Qualcomm Profiler CLI](#qualcomm-profiler-cli)：在 Qualcomm SoC 上分析并优化应用扩展性
* [Perf 实用工具](#perf-实用工具)：评估 Linux 中的性能监控单元（PMU）计数器
* [Systemd-analyze](#systemd-analyze)：分析和调试 Linux 系统的启动性能

## **函数跟踪器（ftrace）**

此工具可深入洞察内核的运行情况。[Function Tracer](https://www.kernel.org/doc/html/v4.17/trace/ftrace.html) 可用于调试或分析延迟和性能问题。函数跟踪器作为一种跟踪工具，用于收集内核空间跟踪数据以供分析。

要收集 ftrace，请执行以下操作：

<Note>
  以下步骤中指定的命令应在设备上运行。
</Note>

1. 要启用跟踪事件，请通过 SSH shell 在设备上运行以下命令：
   ```text theme={null}
   mount -t debugfs none /sys/kernel/debug
   ```
   ```text theme={null}
   echo 0 > /sys/kernel/tracing/tracing_on
   ```
   ```text theme={null}
   echo 25600 > /sys/kernel/tracing/buffer_size_kb
   ```
   ```text theme={null}
   echo "" > /sys/kernel/tracing/set_event
   ```
   ```text theme={null}
   echo "" > /sys/kernel/tracing/trace
   ```
2. 要查看可用事件，请运行以下命令：
   ```text theme={null}
   cat /sys/kernel/tracing/available_events
   ```
3. 要启用所需的事件（例如调度器跟踪），请运行以下命令：
   ```text theme={null}
   echo 1 > /sys/kernel/tracing/events/sched/sched_wakeup_new/enable
   ```
   ```text theme={null}
   echo 1 > /sys/kernel/tracing/events/sched/sched_waking/enable
   ```
   ```text theme={null}
   echo 1 > /sys/kernel/tracing/events/sched/sched_switch/enable
   ```
4. 要了解已设置的事件，请运行以下命令：
   ```text theme={null}
   cat /sys/kernel/debug/tracing/set_event
   ```
5. 要开始跟踪，请运行以下命令：
   ```text theme={null}
   echo 1 > /sys/kernel/tracing/tracing_on
   ```
6. 运行用例。
7. 用例运行完成后，要停止跟踪，请运行以下命令：
   ```text theme={null}
   echo 0 > /sys/kernel/tracing/tracing_on
   ```
8. 要保存跟踪结果，请运行以下命令：
   ```text theme={null}
   cat /sys/kernel/tracing/trace > /opt/ftrace.txt
   ```
9. 要将 ftrace 从目标设备拉取到主机，请使用安全复制协议（SCP）或类似工具。请确保在命令中指定目标 IP 地址。以下是在主机上运行的示例命令：
   ```text theme={null}
   scp -r root@10.92.162.185:/opt/ftrace.txt /local/mnt/workspace/logs
   ```

## **Linux Trace Toolkit next generation（LTTng）**

LTTng 是一款开源跟踪工具。它用于同时跟踪 Linux 内核和用户空间。

更多信息请参见 [LTTng Documentation](https://lttng.org/docs/v2.13/)。

## **Eclipse 的 Trace Compass**

Trace Compass 是一款开源工具，可提供用于分析性能问题的图形化视图。

它可以解析多种类型的跟踪数据（包括 ftrace 和 LTTng），并可视化以下内容：

* 内核资源
* 内核控制流
* 用户空间标记

Trace Compass 是一个主机应用程序，需要 Java 虚拟机才能在主机上运行。

更多信息请参见 [Eclipse Trace Compass](https://projects.eclipse.org/projects/tools.tracecompass)。

要下载 Trace Compass，请参见 [Eclipse Trace Compass - Downloads](https://projects.eclipse.org/projects/tools.tracecompass/downloads)。

## **Qualcomm<sup>®</sup> Profiler CLI**

Qualcomm Profiler 是一款性能分析工具，用于识别、测量和优化应用在 Qualcomm 片上系统（SoC）上的扩展性改进机会。它支持 CPU、GPU、aDSP、cDSP、用户空间进程、内存和 I/O 分析指标。

有关如何使用 Qualcomm Profiler 工具的详细信息，请参见 [Qualcomm Profiler User Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-54323-2/introduction.html)。

要在主机上下载 Qualcomm Profiler 工具，请执行以下操作：

1. 下载并安装 Qualcomm Software Center。
2. 启动 Qualcomm Software Center，搜索 Qualcomm Profiler 并下载。

## **Perf 实用工具**

Perf 实用工具是 Linux 中用于监控 PMU 计数器的开源分析工具。它可用于获取函数调用栈。它是 Qualcomm<sup>®</sup> Linux<sup>®</sup> 构建的一部分。

更多信息请参见 [perf: Linux profiling with performance counters](https://perfwiki.github.io/main/)。

要运行 perf 实用工具，请在设备上运行以下命令：

```text theme={null}
perf --help
```

## **systemd-analyze**

Systemd-analyze 是一款用于分析和调试 Linux 系统启动性能的命令行工具。它测量启动时间里程碑，并分析不同层（如内核、用户空间平台和服务）的瓶颈。Yocto 系统 recipe 默认包含 systemd-analyze 工具。

更多信息请参见 [systemd-analyze — Analyze and debug system manager](https://www.freedesktop.org/software/systemd/man/latest/systemd-analyze.html)。

`systemd-analyze` 二进制文件默认包含在 Qualcomm<sup>®</sup> Linux<sup>®</sup> 构建中。

## **后续步骤**

* [配置 CPU、GPU 和内存](./configure-cpu-gpu-and-memory)
