25 مستودعات
تطبيقات لإدارة الذاكرة واستراتيجيات التخصيص لأنظمة متنوعة.
Explore 25 awesome GitHub repositories matching part of an awesome list · مخصصات الذاكرة. 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 هي مكتبة C++ محمولة وطبقة تجريد للأجهزة مصممة لكتابة كود تعليمات واحدة لبيانات متعددة (SIMD). توفر واجهة موحدة تعين منطق البيانات المتوازية إلى مجموعات تعليمات CPU مختلفة، مما يتيح تطوير برامج عالية الأداء تعمل عبر بنيات معالجات مختلفة دون الحاجة إلى تجميع خاص بالبنية. يتميز المشروع بموزع تعليمات ديناميكي يختار مجموعة تعليمات CPU الأكثر كفاءة في وقت التشغيل بناءً على الأجهزة المكتشفة. كما يدعم تخصص الهدف الثابت وآليات قابلة للتوسيع لإضافة أهداف أجهزة جديدة أو عمليات SIMD مخصصة. تغطي المكتبة مجموعة واسعة من عمليات المتجهات، بما في ذلك الحساب العنصري، وتقليل المسارات، والتبديل، والتنفيذ الشرطي المقنع. وتتضمن مكتبة رياضية متجهة، ومديراً للذاكرة للتخصيص المحاذي وعمليات التحميل والتخزين المقنعة، وبدائيات للتشفير المسرع بالأجهزة. يتم توفير أدوات للتجميع والتحقق المؤتمت من التعليمات المسرعة بالأجهزة عبر بنيات معالجات متعددة.
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 هو مخصص ذاكرة (memory allocator) عالي الأداء بلغة C++ ومكتبة وقت تشغيل مصممة لإدارة ذاكرة الكومة (heap) للخدمات واسعة النطاق. يعمل كمخصص ذاكرة يعتمد على التخزين المؤقت لكل خيط (thread-caching) لتقليل تنافس القفل في التطبيقات متعددة الخيوط للحفاظ على الاستقرار والأداء أثناء أحمال العمل المتزامنة. يركز المشروع على تخصيص الذاكرة عالي التزامن وتوسيع نطاق التطبيقات متعددة الخيوط. ويستخدم استراتيجية توفير ذاكرة تخزين مؤقت لكل خيط لضمان الوصول السريع للذاكرة وتحسين إنتاجية البرامج المتوازية في بيئات برمجة النظام منخفضة المستوى. تدير المكتبة الذاكرة من خلال التخصيص على مستوى الصفحة، والتصنيف حسب الحجم، والبيانات الوصفية القائمة على النطاق لتقليل التجزئة. وتستخدم قائمة حرة مركزية ومسارات سريعة خالية من القفل للتعامل مع طلبات الذاكرة عبر خيوط تنفيذ متعددة.
Employs a tiered caching strategy with thread-local, central, and global page heaps to reduce allocation overhead.
Magnum هي مجموعة برمجيات وسيطة C++ لتطوير الرسومات عبر الأنظمة الأساسية وتصور البيانات في الوقت الفعلي. توفر طبقة تصيير مستقلة عن الأجهزة تترجم أوامر الرسومات إلى استدعاءات خاصة بالمنصة، مما يضمن سلوكاً متسقاً عبر برامج تشغيل GPU وواجهات برمجة تطبيقات مختلفة مثل Vulkan. يركز المشروع على فصل منطق التطبيق عن الأجهزة الأساسية من خلال رسومات مجردة ومرافق النظام. يتميز بمستورد موارد قائم على المكونات الإضافية للأصول ثلاثية الأبعاد والصوت، ورسم بياني للمشهد الهرمي للتحولات المكانية، ونظام أحداث قائم على الإشارة عالي الأداء للاتصال. تشمل القدرات الواسعة الجبر الخطي ورياضيات المتجهات، ومعالجة هندسة الشبكة، وإدارة سياقات GPU. تغطي مجموعة الأدوات أيضاً تشغيل الصوت المكاني، وتكامل أجهزة VR، وتحسينات الذاكرة منخفضة المستوى مثل التخطيطات المتباعدة والتخصيصات المحاذاة. يمكن دمج المكتبة في المشاريع الأصلية كمشروع فرعي 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.