A high-performance memory profiler for Linux that captures every allocation and deallocation with full stack traces.
Bytehound is a memory profiler for Linux that helps developers analyze memory leaks, identify where memory is consumed, and investigate excessive fragmentation. It captures every allocation and deallocation with full stack traces and provides multiple analysis interfaces, including a web-based GUI and export formats like JSON and flamegraphs. The tool is designed for performance, using a custom stack unwinding implementation that is significantly faster than similar tools.
Developers and system engineers working on Linux applications who need to diagnose memory-related issues such as leaks, high consumption, or fragmentation, particularly in performance-sensitive or memory-constrained environments.
Developers choose Bytehound for its high-performance stack unwinding, which can be orders of magnitude faster than alternatives, and its flexibility with features like dynamic data culling for long-term profiling, remote streaming, and support for multiple architectures and allocators like jemalloc.
A 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.
Uses a custom implementation that is significantly cheaper and up to orders of magnitude faster than similar tools, as noted in the README for high-performance profiling.
Filters temporary allocations dynamically, enabling long-term profiling without excessive data growth, which is ideal for extended analysis sessions as described in the features.
Exports data in JSON, Heaptrack format, and flamegraphs, allowing for various analysis methods and integration with other tools, as highlighted in the README.
Includes an interactive web interface for visualizing memory usage, making it easier to explore and debug memory issues, with screenshots provided in the documentation.
Only supports Linux, and for MIPS64, a tiny out-of-tree kernel patch is needed, limiting its use on other platforms or specific architectures, as admitted in the README.
Requires Rust nightly (1.62 or newer), GCC, and Yarn for building, which can be a barrier for teams not already using these tools, adding setup overhead.
Profiling with jemalloc is only available on AMD64 and requires the `jemallocator` crate, restricting its utility for other architectures or allocators, as specified in the features.