Perf tool
This application can be used to understand how to use the Perf tool.
Requirements
The Perf tool is currently implemented only for RISC-V and x86_64 architectures.
Usage example
Build and run the sample with:
west build -b qemu_riscv64 samples/subsys/profiling/perf west build -t run
After the sample has started, enter the shell command:
uart:~$ perf record <duration> <frequency>
This command will start a timer for duration milliseconds at frequency Hz.
Wait for the completion message
perf done!, orperf buf override!if the perf buffer size is smaller than required.Print the samples captured by perf in the terminal with the shell command:
uart:~$ perf printbuf
The output should be similar to:
Perf buf length 2046 0000000000000004 00000000001056b2 0000000000108192 000000000010052f 0000000000000000 .... 000000000010052f 0000000000000000
Copy the output into a file, for example
perf_buf.Generate
graph.svgwith scripts/profiling/stackcollapse.py and FlameGraph:python scripts/perf/stackcollapse.py perf_buf build/zephyr/zephyr.elf | <flamegraph_dir_path>/flamegraph.pl > graph.svg