A heap memory profiler for Linux that traces allocations with stack traces to find memory leaks, hotspots, and temporary allocations.
Heaptrack is a heap memory profiler for Linux that traces all memory allocations and annotates them with stack traces. It helps developers identify memory leaks, allocation hotspots, and temporary allocations to optimize application memory usage and reduce footprint.
Linux developers and system programmers working on performance-critical applications who need to analyze and optimize memory allocation patterns, especially in C++, Rust, or D codebases.
Developers choose Heaptrack for its significantly lower overhead compared to Valgrind's massif, detailed allocation data retention, and support for both graphical and command-line analysis tools, making it practical for real-world applications.
A heap memory profiler for Linux
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Heaptrack has significantly lower overhead than Valgrind's massif, especially for multi-threaded applications, as it only intercepts memory allocations without serializing threads.
It records all allocation events with stack traces, allowing detailed analysis of allocation frequency, temporary allocations, and leak patterns without losing information.
Supports profiling on devices without debug symbols by recording raw traces for later analysis on a development machine with proper sysroots, as detailed in the embedded profiling section.
Offers both a Qt-based GUI for visualization and heaptrack_print for command-line reports, catering to different workflow preferences and environments.
Heaptrack is designed exclusively for Linux, making it unsuitable for profiling applications on other operating systems, limiting its use in cross-platform projects.
Has known issues with binaries built using clang's Address Sanitizer (unsupported) and old versions of the gold linker, which can cause crashes or bogus backtraces, as admitted in the limitations section.
Large profiles from long runs can be inefficient to load and navigate in the GUI, requiring workarounds like periodic restarts or external tools like heaptrack-trim, which adds complexity.
heaptrack is an open-source alternative to the following products: