# 分析工具

Source: [https://docs.qualcomm.com/doc/80-70015-10SC/topic/13-performance_tools.html](https://docs.qualcomm.com/doc/80-70015-10SC/topic/13-performance_tools.html)

分析工具用于检查 CPU 性能。

### 函数跟踪器 (ftrace)

- 此工具专为深入探查内核操作而设计。
- ftrace 用于调试或分析延迟和性能问题。
- 它还可用作跟踪工具，收集内核空间跟踪数据进行分析。

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

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

1. 要启用跟踪事件，可从 SSH shell 运行以下命令：

        mount -t debugfs none /sys/kernel/debugCopy to clipboard

        echo 0 > /sys/kernel/tracing/tracing_onCopy to clipboard

        echo 25600 > /sys/kernel/tracing/buffer_size_kbCopy to clipboard

        echo "" > /sys/kernel/tracing/set_eventCopy to clipboard

        echo "" > /sys/kernel/tracing/traceCopy to clipboard
2. 要查看可用事件，可运行以下命令：

        cat /sys/kernel/tracing/available_eventsCopy to clipboard
3. 要启用所需事件（例如调度器跟踪），可运行以下命令：

        echo 1 > /sys/kernel/tracing/events/sched/sched_wakeup_new/enableCopy to clipboard

        echo 1 > /sys/kernel/tracing/events/sched/sched_waking/enableCopy to clipboard

        echo 1 > /sys/kernel/tracing/events/sched/sched_switch/enableCopy to clipboard
4. 要查看设定事件，可运行以下命令：

        cat /sys/kernel/debug/tracing/set_eventCopy to clipboard
5. 要启动跟踪，可运行以下命令：

        echo 1 > /sys/kernel/tracing/tracing_onCopy to clipboard
6. 运行用例。
7. 要在执行用例后停止跟踪，可运行以下命令：

        echo 0 > /sys/kernel/tracing/tracing_onCopy to clipboard
8. 要保存跟踪，可运行以下命令：

        cat /sys/kernel/tracing/trace > /opt/ftrace.txtCopy to clipboard
9. 要将 ftrace 从目标拉向主机，可使用 SCP 或类似工具。确保在命令中指定目标 IP 地址。以下是在主机上运行的示例命令：

        scp -r root@10.92.162.185:/opt/ftrace.txt /local/mnt/workspace/logsCopy to clipboard

有关详细信息，参见 [https://www.kernel.org/doc/html/v4.17/trace/ftrace.html](https://www.kernel.org/doc/html/v4.17/trace/ftrace.html)。

### Linux Trace Toolkit: Next Generation  (LTTng)

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

有关详细信息，参见 [https://lttng.org/docs/v2.13/](https://lttng.org/docs/v2.13/)。

### Eclipse 的 Trace Compass

- Trace Compass 是一款开源工具，可提供图形视图，用以分析性能问题。
- 它可以解析包括 ftrace 和 LTTng 在内的多种跟踪类型，并可视化以下内容：
    - 内核资源
    - 内核控制流
    - 用户空间标记

Trace Compass 是一款主机应用，需要 Java 虚拟机才能在主机上工作。有关详细信息，参见  [https://projects.eclipse.org/projects/tools.tracecompass](https://projects.eclipse.org/projects/tools.tracecompass)。

### Qualcomm Profiler

- Qualcomm® Profiler CLI 是一个命令行界面工具。
- 可将其用作性能分析工具，以在整个 Qualcomm 片上系统 (SoC) 范围内发掘、评测及优化应用扩展的改进机会。
- 它支持 CPU、GPU、process、memory 和 I/O 分析指标。

在主机上从 [Qualcomm Software Center (QSC)](https://softwarecenter.qualcomm.com/#/) 下载并安装 Qualcomm Profiler 工具。

有关如何使用 Qualcomm Profiler 工具的信息，参见[适用于 Linux 的 Qualcomm Profiler CLI](https://docs.qualcomm.com/bundle/publicresource/topics/80-54323-3/getting-started.html)。

### Perf 工具

- Perf 工具是 Linux 中的一个开源分析工具，用于读取性能监测单元 (PMU) 计数器。
- 可用于获取函数调用堆栈。
- 它是 Qualcomm Linux 编译版本的组成部分。

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

    perf --helpCopy to clipboard

有关详细信息，可访问 [https://perf.wiki.kernel.org/index.php/Main_Page](https://perf.wiki.kernel.org/index.php/Main_Page)。

### systemd-analyze

- Systemd-analyze 是一个命令行工具，用于分析和调试 Linux 中的系统启动性能。
- 它对启动时的重要指标进行评测判断，并分析不同层（例如内核、用户空间平台和服务）的瓶颈。
- Yocto 系统 recipe 自带 systemd-analyze 工具。

要编译并安装 systemd-analyze 工具，执行以下操作：
- 在主机上：
    1. 要编译 `systemd-analyze.ipk`，可在工作区中运行以下命令：

            bitbake systemdCopy to clipboard
    2. `.ipk` 文件在以下目录中生成：

        /build-qcom-wayland/tmp-glibc/deploy/ipk/armv8-2a/systemd-analyze\_250.5-r0\_armv8-2a.ipk
- 在目标设备上：

    1. 使用 SCP 或类似工具将 `.ipk` 文件从主机推送到设备中。以下是在主机上运行的示例命令。确保在此命令中指定目标 IP 地址：

scp systemd-analyze_250.5-r0_armv8-2a.ipk root@10.92.162.185:/var/cache/Copy to clipboard
    2. 通过运行以下命令安装 `.ipk` 文件：

            opkg install /var/cache/systemd-analyze_250.5-r0_armv8-2a.ipkCopy to clipboard

有关详细信息，可访问 [https://www.freedesktop.org/software/systemd/man/latest/systemd-analyze.html](https://www.freedesktop.org/software/systemd/man/latest/systemd-analyze.html)。

Last Published: Nov 28, 2024

[Previous Topic
功能](https://docs.qualcomm.com/bundle/publicresource/80-70015-10SC/topics/2-performance-features.md) [Next Topic
配置](https://docs.qualcomm.com/bundle/publicresource/80-70015-10SC/topics/14-configure.md)