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).
**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).