
GSE (Gnome Shell Extensions) Profiler tool
Note: This tool is specifically for GNOME Shell extension developers. If that's not you, feel free to scroll past.
I was working on optimizing my RSS Feed extension performance and kept running into the same wall: there's no decent way to profile what's actually happening inside the shell process. You can read logs with journalctl, or you can use sysprof (but you don't have well-formatted method names). For object inspection, you can use Looking Glass, but this doesn't help you with code metrics.
A couple of last weeks I was stuck waiting on an EGO ownership transfer (and still waiting), so I used that time to build the tool I needed. And here is it:
GSE Profiler connects to the running shell process via a companion bridge extension and gives you:
- Live function timing with different visualisations: flamegraph / swimlane / histogram
- Structured log filtering
- Extension object inspection
- Because the target extension is monkey-patched during runtime, it doesn't require any changes to your extension code
- Easy flatpack installation (from GitHub Release page)
It scratched my own itch, but I'm curious whether others find it useful too. Happy to answer questions or hear feedback on this project, or what features would actually matter to you.
https://github.com/todevelopers/gse-profiler