30 open-source projects similar to samsaffron/memory_profiler, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Memory Profiler alternative.
Memray is a memory profiler for Python that tracks heap allocations in both Python code and native C or C++ extensions. It captures memory events by hooking into the language runtime and traversing call stacks, providing a comprehensive view of how an application consumes memory. The tool is designed to minimize performance impact on the target application by using thread-local buffering and streaming data to an external process or file. The project distinguishes itself through its ability to monitor complex, multi-threaded systems and child processes in real-time. It provides diagnostic util
Memlab is an automated browser memory profiler and JavaScript memory leak analyzer. It provides a toolkit for detecting and analyzing memory leaks by inspecting and comparing heap snapshots to identify unbound object growth and detached DOM elements. The system distinguishes itself through an automated leak testing framework that executes end-to-end browser interaction sequences to programmatically isolate memory regressions. It utilizes heap snapshot diffing, retainer chain tracing, and heuristic-based filtering to determine why objects remain in memory and to map the shortest path from garb
Matrix is a suite of mobile application performance management and analysis tools. It provides a plugin-based monitoring system for capturing crashes, lags, and memory leaks, alongside a static binary auditor for reducing installation package size and a bytecode instrumentation tool for performance tracking. The project distinguishes itself through native memory debugging and a SQLite query linter that identifies inefficient database patterns. It employs native interception techniques to detect memory leaks and heap corruption without requiring source code recompilation, and uses a custom run
PerfView is a set of integrated profiling and tracing tools built on Windows Event Tracing for Windows (ETW), designed to diagnose CPU, memory, and ETW-based performance issues in .NET applications. It captures ETW events to analyze runtime behavior, CPU usage, and memory allocations, serving as a .NET performance profiler that measures both CPU time and garbage collection events. The tool distinguishes itself with a diff comparison engine that compares two performance traces side-by-side to highlight changes in method costs and event rates. It renders profiled call stacks as flame graphs whe
gperftools is a collection of specialized tools for profiling CPU usage, detecting memory errors, and providing high-performance memory allocation. It provides a memory profiling toolkit for C++ applications, including a sampling CPU profiler and a heap profiler for analyzing consumption patterns. The project includes a high-performance memory allocator designed as a multi-threaded replacement for standard allocation to reduce contention and improve execution speed. It further provides a memory debugger to identify illegal memory access and double frees. The toolkit covers broad diagnostic c
Heaptrack is a heap memory profiler and diagnostic tool for applications running on Linux. It functions as a memory leak detector and performance analysis system that records heap allocations and stack traces to identify memory hotspots and consumption patterns. The project provides a graphical heap allocation visualizer for exploring memory usage through tree views and peak memory reports. It utilizes flame graphs and allocation charts to visualize memory hotspots and assist in the detection of leaks. The toolset includes capabilities for heap memory allocation tracing and the generation of
MLeaksFinder is a diagnostic framework and profiling utility designed for the automatic detection of memory leaks and unfreed objects in iOS applications. It functions as a memory leak detector and profiling tool that identifies retain cycles and analyzes object lifecycles for both Swift and Objective-C code. The tool identifies circular dependencies by tracing reference chains and traversing object graphs, starting from a root view controller. It provides precise debugging data by capturing the allocation stacks of leaked objects to trace the origin of the memory leak. The framework include
Fuite is a web application memory leak detector and browser heap snapshot analyzer. It functions as an automated interaction tester that monitors heap growth during repeated browser sequences to identify leaking DOM nodes and collections. The tool differentiates itself by executing scripted interaction loops to amplify memory growth, making leaks easier to detect. It captures and compares heap snapshots across different timestamps and exports detailed reports containing stack traces and the specific code locations where listeners were declared. The project covers browser automation and orche
BenchmarkDotNet is a library and tool suite for measuring the execution time and memory allocation of .NET code. It utilizes statistical sampling and warm-up iterations to determine the stability and precise execution speed of specific methods. The project provides a JIT disassembly viewer to inspect processor disassembly and analyze how the compiler executes code paths. It includes a memory allocation profiler that tracks managed and native memory traffic to identify efficiency bottlenecks. Additionally, a runtime performance comparator allows the same benchmarks to be executed across differ
Bytehound is a Linux memory profiler that utilizes a custom global allocator to intercept memory requests and track allocations and deallocations. It records full call-stack traces for every memory operation to map allocations back to their originating source code. The project features a remote memory profiling system that streams capture data via network sockets to a separate machine, minimizing resource overhead on the target system. Analysis is supported by a specialized domain-specific query language used to automate the detection of memory patterns and anomalies. The tool covers heap al
This project is a suite of runtime diagnostic tools designed to detect memory leaks, concurrency races, and language-specification violations during software execution. It provides a collection of dynamic analysis tools that identify addressability issues, uninitialized memory usage, and memory safety bugs in applications. The toolset includes a thread safety analyzer to identify data races and deadlocks in concurrent code, as well as an undefined behavior sanitizer to detect operations that violate language specifications. The system covers broad capabilities in memory safety monitoring and
Perfetto is a platform for system-level performance tracing and analysis on Linux and Android. It combines a high-throughput trace recorder, a SQL-based query engine, and a browser-based visualizer into a single toolchain. The platform covers CPU scheduling and call-stack profiling, native and Java heap memory allocation tracking, GPU and graphics events, and system-wide counters such as CPU frequency and power consumption. The architecture decouples trace recording from offline analysis, using a compact protobuf format for event encoding and columnar storage for efficient SQL queries. The we
This project is a diagnostic tool and memory profiler designed to identify and track memory allocation patterns within native code layers. It functions as a native code debugging utility that monitors heap usage and resource lifecycle management to assist in the resolution of memory leaks and resource exhaustion issues. The tool utilizes hook-based allocation interception to maintain a real-time map of active memory blocks and employs shadow-stack call tracing to associate these blocks with specific code locations. By performing periodic reachability analysis and differential memory snapshott
unidbg is a framework for emulating and debugging ARM32 and ARM64 native binaries on a host machine. It serves as an Android and iOS binary debugger and native library emulator, allowing for the execution of native code without the need for physical hardware. The project distinguishes itself through a native function hooking framework and a Model Context Protocol debugging tool that exposes emulator state to AI assistants for automated binary analysis. It also includes a specialized memory analyzer for tracking guest-side allocations and identifying leaks in native binaries. The toolset cove
BCC is an eBPF development toolkit and tracing framework used for monitoring and analyzing the Linux kernel. It functions as a performance analysis tool and debugging utility to capture system events, measure kernel latency, and provide network observability. The project distinguishes itself by providing a build system that integrates with LLVM to compile C-like code into BPF bytecode at runtime. It utilizes BPF Type Format data for relocations to maintain cross-kernel compatibility and extracts kernel headers to ensure the generated programs match the specific kernel version. The toolkit co
OSV is a unikernel operating system and cloud-native execution environment designed to run as a secure microVM on hypervisors such as KVM, Firecracker, Xen, and VMware. It functions as a Linux binary compatible runtime, allowing unmodified Linux binaries to be executed as secure microVMs without requiring recompilation. The project distinguishes itself through its ability to package applications into minimal bootable images and its provide of a virtual machine management API. This REST interface enables remote monitoring of system health, management of execution traces, and control over guest
FBRetainCycleDetector is a runtime memory profiling tool and analyzer for iOS applications. It identifies circular references and retain cycles within the Objective-C object graph to prevent memory leaks. The tool analyzes the live memory heap and inspects runtime metadata to discover object relationships. It identifies closed-loop reference chains, including those involving associated objects and timers, and uses custom logic to filter out known safe cycles from reports. The project covers memory management capabilities including allocation tracking by class name, runtime object graph analy
This project is a comprehensive technical guide and diagnostic manual for analyzing memory, performance, and asynchronous behavior within Node.js applications. It provides detailed methods for asynchronous tracing, memory diagnostics, and performance analysis to resolve runtime errors and execution bottlenecks. The resource distinguishes itself by covering advanced diagnostic workflows, including the use of flame graphs for CPU profiling, the capture and comparison of heap snapshots for memory leak detection, and the mapping of asynchronous call stacks. It also provides technical guidance on
This project is a technical reference and a collection of internal analysis notes focused on the Go language runtime and compiler. It provides a detailed breakdown of the language internals, covering memory management, garbage collection, and the execution model of the scheduler. The material distinguishes itself by providing deep dives into low-level system details, including a reference for Go assembly instructions, register usage, and system call interfacing. It specifically analyzes the internal implementation of concurrency primitives, such as the goroutine scheduling mechanism, channel
This project is a comprehensive technical interview preparation guide and computer science knowledge base. It serves as a structured study resource designed to help software engineers review core engineering concepts and prepare for professional coding assessments. The repository focuses on a wide array of theoretical and practical domains, including detailed references for mobile application architecture and operating system fundamentals. It provides curated materials on software architecture patterns and network protocol analysis to support professional development. The content covers foun
The Android NDK samples provide a comprehensive collection of code examples demonstrating how to integrate C and C++ native code into Android applications. This repository serves as a practical guide for developers utilizing the Android Native Development Kit to implement performance-critical application components that require direct hardware access and low-level system interaction. The project highlights the use of the Java Native Interface to bridge managed code with native modules, enabling cross-language function calls and efficient data exchange. It demonstrates how to manage native act
c3c is the compiler for the C3 programming language, transforming source code into executable binaries, static libraries, or dynamic libraries using an LLVM backend. It implements a system based on result-based error handling, scoped memory pooling, and a semantic macro system. The compiler provides first-class support for hardware-backed SIMD vectors that map directly to processor instructions and enables runtime polymorphism through interface-based dynamic dispatch. The project covers a broad set of low-level capabilities, including manual and pooled memory management, inline assembly inte
btrace is a JVM dynamic tracing tool and performance profiler used for injecting safe instrumentation scripts into a running Java Virtual Machine without requiring a process restart. It functions as a Java agent framework and a Model Context Protocol server, exposing JVM diagnostic operations and tracing tools to large language models and AI assistants. The project distinguishes itself by enabling real-time code injection and bytecode-level instrumentation via a secure binary protocol. It ensures production stability through a static safety analysis engine that blocks unstable code patterns,
Hotspot is a graphical user interface for analyzing and visualizing performance data captured by the Linux perf tool. It functions as a performance profiling visualizer and assembly-level profiler that maps performance costs to specific instructions synchronized with original source code. The project distinguishes itself through a remote symbol resolver that maps performance data from embedded targets to local host debug symbols and sysroots. It also includes a specialized off-CPU analysis tool designed to identify thread wait times and I/O blocks using kernel scheduler tracepoints. The tool
Tracy is a real-time performance profiling framework for C and C++ applications. It provides a software instrumentation library that captures high-resolution telemetry data, which is then visualized through a separate graphical interface to identify bottlenecks and resource allocation issues. The system utilizes a client-server architecture that enables remote profiling, allowing performance data to be captured on a target machine and analyzed on a workstation. It employs lock-free event logging and shared-memory ring buffers to minimize the overhead of data collection, ensuring that the main
Pyroscope is a continuous profiling platform designed to collect, store, and visualize application performance data. It functions as an application performance management suite that tracks historical resource usage to identify bottlenecks and detect performance regressions over time. The platform distinguishes itself through its use of kernel-level instrumentation and dynamic runtime hooks, which allow for performance monitoring without requiring manual code modifications or application restarts. It employs a sidecar agent architecture to offload telemetry processing, utilizing delta-encoded
LeakCanary is a diagnostic tool designed to identify memory leaks by monitoring object lifecycles and analyzing heap snapshots. It automatically detects objects that fail to be garbage collected after their expected lifespan, providing developers with actionable insights to prevent performance degradation and application crashes. The project distinguishes itself by offloading memory-intensive heap parsing to a separate background process, which minimizes performance impact on the main application during runtime. It includes sophisticated deobfuscation capabilities that map obfuscated stack tr
DoKit is a frontend development debugging toolset designed for web and mobile applications. It provides a suite of utilities for intercepting network traffic, mocking API responses, inspecting UI hierarchies, and monitoring mobile app performance. The project is distinguished by its focus on hybrid app inspection, allowing developers to execute scripts within web views and browse internal application sandboxes. It includes a visual UI audit tool with alignment rulers and color pickers to verify that interfaces match design specifications, as well as a diagnostic system that tracks CPU usage a
Async-profiler is a suite of performance tools designed for sampling Java runtimes, tracking memory allocations, and monitoring hardware counters. It functions as a low-overhead sampling profiler for Java applications, collecting stack traces and memory allocation data without safepoint bias. The project provides specialized utilities for generating interactive flame graphs to visualize execution hotspots in a web browser. It includes a hardware performance counter monitor to track low-level system events such as cache misses and page faults. The toolset covers several diagnostic domains, in
Speedscope is a web-based performance profiler that visualizes profiling data through interactive flamegraphs and timeline views. It ingests performance profiles from a wide range of sources, including Chrome, Firefox, Safari, Node.js, .NET Core, Instruments, Hermes, GHC, and Ruby, normalizing them into a common schema for unified analysis. The tool distinguishes itself with a canvas-based rendering engine that draws flamegraphs without DOM nodes for each frame, and a WebAssembly-based rendering pipeline for high-performance drawing. It offers left-heavy stack sorting to surface the most time