Skip to content

Hotspot A GUI for perf report

“I have also done some last minute performance improvements with the help of KDAB Hotspot/perf, and I must say that the days of profiling with weird/huge perf command line options are gone, awesome tool!”

Hotspot is a KDAB R&D project to create a standalone GUI for performance data. It is a replacement for perf report. Hotspot’s GUI takes a perf.data file, parses and evaluates its contents and then displays the result in a graphical way.

Hotspot’s initial goal was to provide a UI like KCachegrind around Linux perf. In future versions we will be supporting various other performance data formats under this umbrella. You can find the source code on our GitHub page.

The most important current features are listed below:

  • The summary view of hotspot gives a quick overview of the analyzed perf.data file and the system it was recorded on.
  • The bottom-up view displays the aggregated sample costs from where the cost is actually spent. This shows the hot functions in your code base.
  • The top-down view of hotspot allows you to drill-down the call graph to find the most costly functions in your code base.
  • Hotspot comes with a built-in flamegraph visualization. It is interactive and allows searching, zooming and more.
  • Hotspot’s Caller / Callee view aggregates the data like KCachegrind’s main table view. This is useful to find unexpected costs of frames in the middle of the call stacks.
  • An event time line which allows you to filter the results by time, thread or process
  • A new record page to configure and run perf graphically from within hotspot. It supports both, launching a new application as well as attaching to running processes.
  • Additionally, we now also publish an AppImage with this release, which allows you use hotspot quickly, even on older Linux distributions – no need to compile anything anymore!

Download Hotspot from our GitHub page.

Categories: C++ / Qt / Showcase videos / Tooling

Leave a Reply

Your email address will not be published. Required fields are marked *