Sparkling gems and new releases from the world of Free and Open Source Software
Perf GUI
hotspot
Perf
is one of those commands that desktop Linux users might not appreciate is so fundamental to their Linux experience. That's because perf
is a tool aimed squarely at developers to help them peek inside their application's internals, as well as the internals of the Linux operating system itself. Running perf
against the binary for an executable built with debugging symbols will collate everything that the binary does and where it spends its time. But perf
is complex and deep, requiring good working knowledge of the underlying operating system and system calls to be most useful. This is why a GUI can be so helpful, and it's one the reasons why Qt Creator with its integrated Callgrind support (a tool similar to perf
) is so popular.
hotspot is a new GUI for perf
that does away with the need for a complex IDE if all you want to do is get a visual overview of what an application is doing. It can even open source files in Qt Creator, as well as Kate or another editor if you so choose. You need to generate the perf
data first, which requires running your application against your choice of perf
arguments. For example, running
perf record -e cycles, instructions ./filmulator-gui
within the build directory of filmulator-gui
loads the photo-processing tool and collates perf
data at the same time. You then use the application just as you would, quit, and load the resultant file into hotspot. This immediately shows that develop()
and LibRaw::median_filter()
are the two post-processor-intensive functions taking up 30 percent of the cycles while the application is running. This behavior is what you'd expect, because these functions are presumably generating the image previews, but it gives you a good indication of where your efforts, as a developer, might go when improving performance. Which is exactly what perf
is good for.
Project Website
https://www.kdab.com/hotspot-gui-linux-perf-profiler/
Material shader
Buy this article as PDF
(incl. VAT)