[HN Gopher] Hotspot: Linux `perf` GUI for performance analysis
___________________________________________________________________
Hotspot: Linux `perf` GUI for performance analysis
Author : jez
Score : 95 points
Date : 2025-05-19 21:33 UTC (3 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| gue-ni wrote:
| Fun fact: firefox also supports loading 'perf' reports:
| https://profiler.firefox.com/
| the8472 wrote:
| useful for small profiles, but it blows up on larger ones.
| hotspot handles multi-gigabytes recordings fine on the same
| hardware.
| milianw wrote:
| I still think we should find a way to integrate the two
| somehow - i.e. analyze locally and then send the pre-analyzed
| data for visualization purposes to the remote firefox
| profiler. Does anyone know a good format we could use for
| that purpose? It needs to be non-verbose to not hit the
| infamous 2GB/4GB JSON heap size limitation on import e.g.
| Similarly, we also need something that can deal with the
| various cost types we support in hotspot, most notably off-
| CPU time.
| pityJuke wrote:
| samply [0] does something to send data to Firefox Profiler
| that I've had better results with compared to the regular
| import.
|
| [0]: https://github.com/mstange/samply
| fransje26 wrote:
| Great tool that has been really helpful in helping me find
| unexpected bottlenecks in the codebases I've been working on.
|
| It's easy to use, and pairs beautifully with the unintrusive perf
| tool, which makes the combination a joy to use.
|
| And, if combined with a codebase opened in QtCreator, you can
| click on a hotspot in the flamegraph, and it will bring you
| automagically to the correct file and line in QtCreator, without
| any explicit linking required between the two programs. I
| discovered that feature accidentally, and the fact that it just
| worked seamlessly really impressed me. (Tested on a Debian-based
| Linux).
|
| A big thanks to KDAB for making this tool available to us!
| milianw wrote:
| You are welcome :)
|
| And to people using other IDE/editors - you can configure which
| one gets opened when you click on a source line from the
| hotspot settings. QtCreator is just the default (when that is
| installed).
| kvemkon wrote:
| It's a pity, Hotspot is abandoned in Debian. Just because of
| policykit [1]. The package seems to be rather easy to
| maintain (it has a tiny rule file, small control and only 2
| patches).
|
| [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1025573
| fransje26 wrote:
| And, of course, a big thanks to you for writing this tool!
| :-)
| pjmlp wrote:
| Nice tool, thanks for the heads up.
| ognarb wrote:
| From the same author, Heaptrack to investigate memory usage is
| also very helpful: https://invent.kde.org/sdk/heaptrack/
| throwaway0665 wrote:
| I just assumed they used the same gui toolkit. Awesome to hear
| they're from the same author.
| mananaysiempre wrote:
| (The toolkit is Qt.)
| directmusic wrote:
| I primarily do macOS development work and use Instruments for
| profiling, but have been working on Linux a lot lately and
| Hotspot has been pulled out a lot over the last few weeks. Highly
| recommended.
| wizzledonker wrote:
| This is a fantastic tool and I recommend it! I use it every day
| to recursively solve bottlenecks in our code base.
| grandinj wrote:
| Wonderful tool. Has been incredibly useful in optimising
| LibreOffice.
| drewg123 wrote:
| I'm on FreeBSD, so its a lot of overhead to check myself: But,
| does this have a source view like Vtune, that can attribute
| cycles / cache misses / etc, to a line of code? I see it has an
| assembly view..
| dustbunny wrote:
| I couldn't figure out how to use hotspot. I used speedscope
| instead: https://www.speedscope.app/
|
| Maybe I should check out hotspot again.
___________________________________________________________________
(page generated 2025-05-22 23:01 UTC)