Skip to content

MemHawk v1.0.0

Choose a tag to compare

@IlRomanenko IlRomanenko released this 20 Jul 23:03
· 56 commits to main since this release

MemHawk v1.0.0 - Initial Public Release

✨ Key Features in This Release

This initial release is stable and packed with features to help you hunt down memory leaks and optimize your application's performance:

  • 🚀 Blazing-Fast Profiling: A thread-local, minimal-locking architecture ensures the lowest possible overhead, especially in highly concurrent applications.
  • 🎯 100% Accurate Tracking: Every call to malloc, free, new, and delete is intercepted and tracked. No sampling means no missed events.
  • 💡 Smart Stack Trace Aggregation: Instead of generating terabytes of logs, MemHawk groups allocations by their unique stack trace, giving you clear, actionable summaries.
  • 🔧 Flexible Unwinding: Full support for stack unwinding using both DWARF debug information and faster frame pointers (-fno-omit-frame-pointer).
  • 📦 Zero-Dependency & Portable: MemHawk is delivered as a single, statically-linked library. Just copy it to any x86_64 Linux machine and it works—no apt-get or yum required.
  • 📝 Clear & Actionable Reports: Generates human-readable text logs that pinpoint the exact traces consuming the most memory (ByActiveSize) and those causing the most allocations (ByTotalCount).

Assets

  • libmemhawk.so: Statically-linked shared library for x86_64 Linux (glibc 2.30+). Ready to use with LD_PRELOAD.
  • Source code (zip): The source code for this release.
  • Source code (tar.gz): The source code for this release.

🚀 Quick Start with the Binary

Get started in seconds with the pre-compiled library:

  1. Download libmemhawk.so from the assets below.
  2. Run your application using LD_PRELOAD:
    LD_PRELOAD=./libmemhawk.so ./your_application
  3. After your application exits, inspect the generated memhawk_..._summary.log and memhawk_..._stacktraces.log files in the current directory.

Documentation

For detailed instructions on building from source, advanced configuration via MEMHAWK_OPTS, and CMake integration, please see main README.md.

What's Next?

  • GUI Viewer: A graphical interface to visualize memory usage and navigate profiling dumps, potentially compatible with the heaptrack format.
  • On-Demand Dumps: The ability to trigger a memory report on-demand by sending a signal (e.g., SIGUSR1) to the running process.
  • Log Rotation: Automatic rotation of log files for long-running applications.

Full Changelog: https://github.com/IlRomanenko/MemHawk/commits/v1.0.0