Heaptrack is a heap profiler for Linux. It aims to be faster than massif from the Valgrind suite, while providing more data to aid in improving the heap memory performance of native applications written in e.g. C, C++.
Features:
- automatically track heap memory allocations through malloc and friends
- API to manually track allocations from custom pool allocators
- fine-grained time resolution of tracked data (down to 10ms)
The tracked data gives developers insight into:
- memory consumption over time
- peak memory consumption
- memory leakds
- number of memory allocations
- temporary memory allocations
Heaptrack also comes with two analyzers built-in. One, heaptrack_print is a simple ASCII GUI to interpret the data with minimal dependencies. The other, heaptrack_gui is a sophisticated GUI with more advanced analysis features:
- bottom-up call-graph view
- top-down call-graph view
- caller-callee view
- flamegraph view
- time charts
Contribute:
You can contribute code by submitting patches via KDE's phabricator: https://phabricator.kde.org/differential/diff/create/ (use heaptrack as the target repository).
Bug reports:
Please report bugs on KDE's bugzilla, using the heaptrack component: https://bugs.kde.org/enter_bug.cgi?product=Heaptrack
Documentation:
You can also help by extending the documentation of heaptrack. We use the following Wiki for that purpose: https://userbase.kde.org/Heaptrack/
Mailing List:
Heaptrack has its own mailing list: https://mail.kde.org/mailman/listinfo/heaptrack
Please send any questions about this project there. You can use this list for both, support requests as well as development discussions. Please report bugs on the bug tracker (see above).
Sources:
You can download source tarballs of release versions from the KDE mirrors: https://phabricator.kde.org/source/heaptrack/
The sources can be browsed online at: https://phabricator.kde.org/source/heaptrack/