For memory management subsystems, the strongest matches are microsoft/mimalloc (Mimalloc is a high-performance, general-purpose dynamic memory allocator that), bdwgc/bdwgc (This is a comprehensive garbage-collected memory allocator for C) and orangeduck/cello (Cello provides a high-level runtime environment for C that). jemalloc/jemalloc and facebook/folly round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Explore the best open-source memory management systems. Compare top-rated libraries by performance and activity to find the best fit for your project.
Mimalloc is a general purpose dynamic memory allocator for C and C++ designed to increase execution speed and reduce fragmentation. It functions as a scalable heap manager that replaces standard library allocation functions to improve performance and memory efficiency across applications. The project distinguishes itself as both a heap security hardener and a memory corruption detector. It employs randomized allocation, encrypted free lists, and sampled guard pages to mitigate heap exploits and identify buffer overflows or use-after-free errors during runtime. The allocator provides capabili
Mimalloc is a high-performance, general-purpose dynamic memory allocator that serves as a core component for managing system heap memory, though it focuses on allocation and security rather than providing garbage collection or NUMA-specific scheduling.
This project is a garbage collection library and memory allocator for C and C++ that provides automatic reclamation of unreachable objects. It functions as a memory management system that can replace standard allocation functions to automate memory reclamation without requiring source modification. The system is distinguished by its ability to perform incremental and generational garbage collection to reduce application pauses, as well as parallel collection to distribute tracing across multiple CPU cores. It includes a specialized string manipulation library that uses shared structures to en
This is a comprehensive garbage-collected memory allocator for C and C++ that provides dynamic allocation, automatic reclamation, and low-latency features like incremental and parallel collection, making it a direct fit for a memory management subsystem.
Cello is a programming language extension for C that provides a higher-level implementation of the language. It integrates an object-oriented framework, an automated garbage collection system, and a runtime reflection library to enable dynamic type inspection. The project implements a structured system for object orientation within C, including support for classes, type classes, and polymorphism. It includes a runtime exception handling system to intercept execution errors and initiate recovery procedures. The framework further provides generic programming capabilities for creating reusable
Cello provides a high-level runtime environment for C that includes an integrated garbage collection system and automated memory lifecycle management, fitting the requirements for a memory management subsystem within a C-based runtime.
jemalloc is a general purpose C memory allocator designed as a replacement for the standard library malloc and free functions. It is a multi-threaded allocation library that emphasizes fragmentation avoidance and scalable concurrency for high-performance applications. The project reduces lock contention by using multiple independent memory arenas and thread-local cache layers. It minimizes latency by offloading the reclamation of unused memory pages to asynchronous background threads and utilizes huge page metadata storage to reduce translation lookaside buffer misses. The system includes a
This is a high-performance general-purpose memory allocator that provides the core dynamic allocation and low-latency features required for managing system memory, though it does not include a garbage collector.
Folly is a collection of high-performance C++ components designed as an extension to the C++ Standard Library for large-scale production environments. It provides specialized toolkits for memory management, concurrency, asynchronous workflows, and low-latency input and output operations. The project distinguishes itself through the provision of lock-free containers and bounded queues to minimize contention in multi-threaded applications, alongside a framework for managing deferred computations using futures and promises. It further offers specialized memory arenas and optimized implementation
Folly provides specialized memory arenas and high-performance allocation primitives designed for low-latency, large-scale C++ environments, making it a relevant library for building memory management subsystems.
The Linux kernel is a monolithic operating system core that manages hardware resources, memory, and process scheduling across diverse computing architectures. It provides a standardized, POSIX-compliant environment for application execution while maintaining a modular driver framework that allows for the dynamic loading and removal of hardware interfaces. The project is distinguished by its high-performance concurrency toolkit, which utilizes lockless synchronization primitives and read-copy-update mechanisms to manage shared data access in multi-core environments. It incorporates a comprehen
The Linux kernel is the foundational system software that implements low-level memory management, including dynamic allocation, NUMA-aware page management, and hardware-level memory tracking, which directly addresses your requirement for a system-level memory management subsystem.
This project is a C-based heap management library designed for systems programming environments that require manual control over memory lifecycles. It provides the fundamental utilities necessary to initialize a designated region of memory and perform dynamic allocation and deallocation of memory blocks. The library utilizes a linked-list-based tracking system to manage memory segments, employing a first-fit strategy to locate available space within the heap. To maintain memory organization and minimize fragmentation, it implements boundary-tag coalescing, which automatically merges adjacent
This is a minimal heap memory allocator written in C that provides the core functionality for dynamic memory allocation in low-level systems, though it lacks advanced features like garbage collection or NUMA awareness.
STL compatible C++ memory allocator library using a new RawAllocator concept that is similar to an Allocator but easier to use and write.
This library provides a suite of C++ memory allocators and management abstractions that directly address the need for low-level allocation and tracking, fitting the category of a memory management component.
Custom memory allocators in C++ to improve the performance of dynamic memory allocation
This repository provides a collection of custom C++ memory allocators designed for high-performance dynamic memory management, directly addressing the core requirement for low-level allocation components.