25 dépôts
Implémentations de stratégies de gestion et d'allocation de mémoire pour divers systèmes.
Explore 25 awesome GitHub repositories matching part of an awesome list · Allocateurs de mémoire. Refine with filters or upvote what's useful.
This project is a comprehensive technical interview preparation resource and computer science interview guide. It serves as an educational reference for developers to study core software engineering fundamentals and common coding patterns required for employment screenings. The repository provides detailed guides and references covering data structures and algorithms, networking and security, operating systems, and web development. It specifically focuses on the implementation and complexity analysis of sorting, searching, and graph algorithms. The material encompasses a wide breadth of comp
Details the allocation of main memory using continuous and non-continuous methods, including paging.
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
Implements a high-performance general purpose memory allocator designed for execution speed and reduced fragmentation.
This project is a technical reference and documentation suite focused on the internal architecture and operational principles of the Java Virtual Machine. It provides comprehensive guides and analysis on how the virtual machine manages class loading, memory organization, and bytecode execution. The documentation distinguishes itself by providing deep dives into specific runtime mechanisms, such as the binary decoding of class files, the hierarchical delegation model for class loaders, and the precise sequence of the loading, linking, and initialization lifecycle. It also details memory reclam
Describes how the virtual machine organizes memory allocation to manage the lifecycles of objects and classes.
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
Implements a general-purpose memory allocation library emphasizing fragmentation avoidance and scalable concurrency.
LMCache is a distributed key-value cache manager and tiering system designed to accelerate large language model inference. It functions as a tiered storage layer that offloads tensors from GPU memory to CPU RAM, local disks, or remote object stores, enabling the reuse of cached prefixes across different inference sessions and serving engines. The system differentiates itself through a disaggregated prefill-decode model, which separates prompt processing from token generation by transferring caches between distributed compute nodes. It utilizes peer-to-peer orchestration to share and retrieve
Employs a lazy allocation strategy to gradually expand memory usage and reduce initial startup footprint.
996.Leave is an open-source, community-maintained guide that helps tech workers compare work conditions, salaries, cost of living, and legal protections across different countries to inform international relocation decisions. The project stores each country's information as a Markdown file, which is rendered into a pre-built HTML page through static site generation, making the content fast to load and simple to host. The guide provides structured comparisons across a wide range of factors that matter to tech professionals considering a move abroad. These include annual leave entitlements, tax
Advises that recruitment agencies and referrals are most effective in New Zealand and offers personal contact.
RediSearch is a Redis module that adds secondary indexing, full-text search, aggregation, and vector similarity search directly into the in-memory data store. It operates as an in-process search engine, extending the core key-value store with capabilities for indexing hash and JSON documents, enabling fast field-level lookups beyond primary key access. The module provides a full-text search engine built on inverted indexes, supporting stemming, fuzzy matching, and relevance scoring via tf-idf. It also includes a vector similarity search engine using a Hierarchical Navigable Small World graph
Allocates module memory using Redis's own allocator so allocations are tracked and obey maxmemory policies.
Defines allocation semantics with provenance tracking to enforce that pointers only access their originating allocation.
Torchtune is a PyTorch-native library for fine-tuning, aligning, and quantizing large language models. It provides a configurable training pipeline orchestrated through YAML recipes, with CLI overrides and component swapping, distributed training via FSDP2, memory optimizations, and parameter-efficient fine-tuning methods like LoRA, DoRA, and QLoRA. The library distinguishes itself through its YAML-driven configuration system that defines all training parameters and instantiates components from config files, with full CLI override capability for any field or component at launch time. It suppo
Binds worker processes to CPUs near their assigned GPUs on NUMA systems to improve memory access performance.
Torchtune is a PyTorch-native library for fine-tuning, aligning, and quantizing large language models. It provides a config-driven system for instantiating components, orchestrating distributed training, and managing parameter-efficient fine-tuning with quantization support, all through YAML-based configurations and command-line overrides. The library distinguishes itself through its comprehensive post-training workflow orchestration, combining supervised fine-tuning, preference optimization (DPO, PPO, GRPO), knowledge distillation, and quantization-aware training in a single configurable pip
Pins worker processes to CPUs near their assigned GPUs on NUMA systems to reduce memory access latency.
InterviewGuide is a comprehensive technical interview preparation platform that covers the full spectrum of software engineering recruitment, from foundational computer science concepts through to offer negotiation. It provides structured learning paths across algorithms, operating systems, databases, networking, and programming languages, with a particular emphasis on C++ and Go. The platform aggregates real interview experiences and company-specific questions from major tech employers, offering candidates a searchable database of past written exam problems and detailed accounts of actual int
Explains that freed memory is held in a freelist by ptmalloc for future allocations, reducing system calls.
Carp is a statically typed Lisp compiler that compiles Lisp-like syntax directly to C source code, enabling seamless integration with existing C libraries and low-level system programming. It manages memory deterministically at compile time using ownership tracking and linear types, eliminating garbage collection pauses and runtime overhead while ensuring type safety through an inferred static type system. The language distinguishes itself through compile-time macro expansion and metaprogramming capabilities, allowing code generation and transformation before final binary output. It enforces
Records every memory allocation call made inside a block of code during execution.
This is an open-source, crowd-sourced wiki textbook that teaches Linux system programming in C. It covers the core operating system concepts of process management through the fork-exec-wait model, dynamic memory allocation using implicit free list heap allocators, inode-based file systems, inter-process communication via pipes and shared memory, POSIX threads with synchronization primitives, signal-based asynchronous notification, virtual memory with page table translation, and runtime diagnostics using Valgrind and GDB. The textbook distinguishes itself by providing practical, implementation
Provides detailed guides on implementing implicit free list heap allocators.
Highway est une bibliothèque C++ portable et une couche d'abstraction matérielle conçue pour écrire du code SIMD (Single Instruction Multiple Data). Elle fournit une interface unifiée qui mappe la logique de parallélisme de données vers divers jeux d'instructions CPU, permettant le développement de logiciels haute performance qui s'exécutent sur différentes architectures de processeurs sans nécessiter d'assembleur spécifique à l'architecture. Le projet dispose d'un répartiteur d'instructions dynamique qui sélectionne le jeu d'instructions CPU le plus efficace à l'exécution en fonction du matériel détecté. Il prend également en charge la spécialisation de cible statique et des mécanismes extensibles pour ajouter de nouvelles cibles matérielles ou des opérations SIMD personnalisées. La bibliothèque couvre un large éventail d'opérations vectorielles, incluant l'arithmétique élément par élément, la réduction de voie, le mélange (shuffling) et l'exécution conditionnelle masquée. Elle inclut une bibliothèque mathématique vectorisée, un gestionnaire de mémoire pour l'allocation alignée et les opérations de chargement-stockage masquées, ainsi que des primitives pour la cryptographie accélérée par matériel. Des outils sont fournis pour la compilation et la validation automatisées des instructions accélérées par matériel sur plusieurs architectures de processeurs.
Includes a memory manager for aligned allocation and masked load-store operations to optimize vector processing.
Luau is a high-performance programming language evolved from Lua 5.1. It consists of a bytecode virtual machine, an embeddable scripting engine, and a static code analyzer designed to provide a secure, sandboxed execution environment for host applications. The project is distinguished by its gradual typing system, which combines automatic type inference with optional manual annotations to detect bugs without requiring full static typing. It also features native vector mathematics for high-performance operations and a specialized debugging system that uses bytecode patching to minimize executi
Employs a domain-specific pool allocator tuned for scripting workloads to outperform general-purpose memory allocators.
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
Ships a configurable Poisson-sampling allocator that records every malloc call to reduce overhead while capturing large allocations.
Tcmalloc est un allocateur de mémoire C++ haute performance et une bibliothèque d'exécution conçue pour gérer la mémoire tas (heap) pour les services à grande échelle. Il fonctionne comme un allocateur de mémoire avec mise en cache par thread qui réduit la contention de verrouillage dans les applications multithreadées pour maintenir la stabilité et les performances lors de charges de travail concurrentes. Le projet se concentre sur l'allocation de mémoire à haute concurrence et la mise à l'échelle des applications multithreadées. Il emploie une stratégie consistant à fournir des caches par thread pour assurer un accès rapide à la mémoire et améliorer le débit des programmes parallèles dans les environnements de programmation système de bas niveau. La bibliothèque gère la mémoire via une allocation au niveau des pages, un binning par classe de taille et des métadonnées basées sur des étendues (spans) pour minimiser la fragmentation. Elle utilise une liste libre centrale et des chemins rapides sans verrouillage pour gérer les demandes de mémoire à travers plusieurs threads d'exécution.
Employs a tiered caching strategy with thread-local, central, and global page heaps to reduce allocation overhead.
Magnum est une suite de middleware C++ pour le développement graphique multiplateforme et la visualisation de données en temps réel. Il fournit une couche de rendu agnostique au matériel qui traduit les commandes graphiques en appels spécifiques à la plateforme, assurant un comportement cohérent à travers différents pilotes GPU et API tels que Vulkan. Le projet se concentre sur le découplage de la logique d'application du matériel sous-jacent grâce à des utilitaires graphiques et système abstraits. Il dispose d'un importateur de ressources basé sur des plugins pour les actifs 3D et l'audio, d'un graphe de scène hiérarchique pour les transformations spatiales et d'un système d'événements basé sur des signaux haute performance pour la communication. Les capacités étendues incluent l'algèbre linéaire et les mathématiques vectorielles, le traitement de la géométrie de maillage et la gestion des contextes GPU. La boîte à outils couvre également la lecture audio spatiale, l'intégration matérielle VR et les optimisations de mémoire de bas niveau comme les mises en page stridées et les allocations alignées. La bibliothèque peut être intégrée dans des projets parents en tant que sous-projet CMake.
Aligns memory blocks to specific boundaries to optimize SIMD and vector instruction performance.
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
Implements general memory allocation for arrays and lists using either the heap or temporary pools.
This repository is a comprehensive collection of fully worked solutions to exercises and problems from the standard algorithms textbook by Cormen, Leiserson, Rivest, and Stein (CLRS). It serves as an educational reference for algorithm design and analysis, providing step-by-step reasoning, pseudocode, and mathematical proofs for a wide range of topics. The content spans core computer science areas: algorithm analysis with asymptotic notation, recurrence solving, and amortized cost analysis; data structure implementation and operations for binary search trees, red-black trees, B-trees, Fibonac
Implements allocation and deallocation of array objects from a stack-like free list for reuse.