Suggest good CPU profiling tool for linux bases platform .
Any suggestions for Good CPU profiling tool needs to be used for ARM based Device and using Linux Platform .
#ARM
2 Replies
Hi @embeddedshiksha_39035, following tools you might consider for the task
* Perf
- Valgrind
- DS-5 Streamline
Perf
* perf uses commands to generate reports of performance counters. If you want to quickly try and test Click here for instructions
- In case, you want a nice GUI Tool for profiling CPU, then try Hotspot. It's free and uses perf beneath. This tool provides great visual graphs of CPU, memory usage, etc.
Valgrind
* Available under GPL for building simulation-based debugging and CPU profiling. I personally tried on RPi long back with Raspbian Jessie (OS). It took a lot of effort for installation and configuration. Only supported a few features as compared to the x86. (Maybe by 2023 issues have been fixed).
DS-5 Streamline
* Official ARM DS-5 Development Studio- a toolchain for performance analysis. You can evaluate how your application performs on devices with Arm CPUs and GPUs. It also supports bare-metal and embedded linux for debugging.
Thanking you!
Get started with the Raspberry Pi 4: Linux Perf
This is an introductory topic for software developers interested in the Raspberry Pi 4.
Valgrind Home
Official Home Page for valgrind, a suite of tools for debugging and profiling. Automatically detect memory management and threading bugs, and perform detailed profiling. The current stable version is valgrind-3.21.0.
Arm Development Studio
Develop with the most comprehensive embedded C and C++ tool suite on any Arm architecture from SoC design to software development.
Thanks for the inputs Umesh,
In addition to the above, I would like to add a few more tools:
sysprof: A simple GUI tool to inspect profiling results.
https://gitlab.gnome.org/GNOME/sysprof/tree/master/
For Real time analysis: Berklery Packet Filters and BCC, which is a toolkit for Kernel tracing and program manipulation.
https://github.com/iovisor/bcc
To tune runing processes: tuna which is a simple tool for tuining running processes.
https://manpages.ubuntu.com/manpages/focal/en/man8/tuna.8.html
GitHub
GitHub - iovisor/bcc: BCC - Tools for BPF-based Linux IO analysis, ...
BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more - GitHub - iovisor/bcc: BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more