22 repository-uri
Libraries for managing dynamic memory and garbage collection.
Explore 22 awesome GitHub repositories matching part of an awesome list · Memory Allocation. Refine with filters or upvote what's useful.
This project is a collection of guidelines and best practices for the Go programming language, providing a comprehensive style guide and set of programming standards. It establishes a framework for writing maintainable and performant source code through standardized naming, structuring, and organizational conventions. The guide focuses on specific patterns for concurrency, error handling, and performance optimization. It details methods for managing goroutine lifecycles to prevent race conditions, designing structured error wrapping and routing to maintain observability, and implementing memo
Implements memory allocation strategies such as specifying initial capacities to reduce garbage collection overhead.
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
Compact general purpose allocator with high performance.
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
General purpose malloc with fragmentation avoidance and concurrency support.
xLua is a scripting bridge and C++ wrapper used to embed the Lua language into host applications. It facilitates bidirectional data exchange and function calls between scripts and the host environment. The project includes a runtime patching tool for replacing application logic and fixing bugs without requiring a system restart. It features a coroutine orchestrator that wraps asynchronous operations into linear code and a script validator that verifies digital signatures to ensure code authenticity and integrity before execution. To minimize memory overhead and garbage collection, the system
Supports passing custom structs and enums between the scripting engine and host environment to reduce garbage collection overhead.
This project is a translated Go language style guide and programming standard. It provides a collection of coding standards and best practices designed to ensure that Go code remains maintainable, readable, and efficient. The guide focuses on idiomatic patterns for error handling, interface compliance, and memory optimization. It establishes standards for package naming and the use of functional options to maintain backward compatibility in constructors. It covers a broad range of capabilities, including concurrency management for coordinating process lifecycles and preventing resource leaks
Provides strategies for pre-allocating data collection capacity to minimize runtime overhead and garbage collection pressure.
100 Go Mistakes is a reference book and code review companion that catalogues frequent Go programming anti-patterns and provides corrected implementations for each one. It covers a wide range of common pitfalls, from range loop variable capture and interface nil handling to error wrapping and map iteration randomization, helping developers recognize and avoid these issues in their own code. The project distinguishes itself by offering a structured, example-driven approach to learning idiomatic Go. It covers core design decisions such as when to use pointer versus value receivers, how to apply
Teaches how to initialize slices with explicit length and capacity for performance.
Tcmalloc este un alocator de memorie C++ de înaltă performanță și o bibliotecă de runtime concepută pentru a gestiona memoria heap pentru servicii la scară largă. Acesta funcționează ca un alocator de memorie cu thread-caching care reduce lock contention-ul în aplicațiile multi-threaded pentru a menține stabilitatea și performanța în timpul sarcinilor de lucru concurente. Proiectul se concentrează pe alocarea memoriei cu concurență ridicată și scalarea aplicațiilor multi-threaded. Utilizează o strategie de furnizare a cache-urilor per-thread pentru a asigura accesul rapid la memorie și a îmbunătăți throughput-ul programelor paralele în medii de programare de sistem low-level. Biblioteca gestionează memoria prin alocare la nivel de pagină, binning pe clase de dimensiune și metadate bazate pe span pentru a minimiza fragmentarea. Utilizează o listă centrală de elemente libere și căi rapide lock-free pentru a gestiona cererile de memorie pe mai multe thread-uri de execuție.
Fast, multi-threaded malloc implementation.
Acest proiect este o traducere în chineză a unui ghid cuprinzător pentru limbajul de programare Go. Servește ca resursă educațională localizată și manual tehnic conceput pentru a oferi îndrumări privind sintaxa limbajului, designul și dezvoltarea software. Resursa acoperă o gamă largă de educație în limbajul Go, inclusiv implementarea modelelor de programare și designul de sistem. Include lecții traduse și exemple care se concentrează pe caracteristicile de bază ale limbajului, cum ar fi concurența și utilizarea interfețelor. Conținutul acoperă diverse domenii de capabilitate, inclusiv fundamentele limbajului, modelarea datelor, runtime reflection și gestionarea memoriei. De asemenea, oferă o acoperire detaliată a arhitecturii software, gestionarea erorilor, asigurarea calității și rețelistica web. Documentația este structurată ca un manual tehnic care conține conținut tradus, erate și corecții pentru a asigura o învățare precisă.
Explains how to initialize slices with specific length and capacity for optimal memory allocation.
ZLinq is a zero-allocation LINQ library and memory-efficient collection toolkit for C#. It provides a high-performance replacement for standard query operations by using value-type enumerators and pooled memory to eliminate heap allocations and reduce garbage collection overhead. The library features a C# source generator that automatically routes standard query method calls to these zero-allocation implementations. It further accelerates data processing through a SIMD accelerated data library, using hardware vectorization for numeric aggregations and bulk operations on primitive arrays and s
Reduces garbage collection frequency and overhead by performing data queries without heap memory allocation.
kcp-go este o bibliotecă Go care implementează protocolul KCP pentru transmisia fiabilă a datelor prin UDP. Acesta oferă un strat de transport bazat pe flux și un protocol de rețea cu cerere de repetare automată pentru a asigura livrarea ordonată, reducând în același timp latența rețelei. Proiectul se diferențiază prin utilizarea corecției erorilor înainte (forward error correction) prin coduri Reed-Solomon pentru a reconstrui pachetele pierdute fără retransmisii. De asemenea, implementează tunelarea UDP securizată prin utilizarea cifrurilor pe bloc pentru a cripta atât header-ele pachetelor, cât și payload-urile. Biblioteca include capabilități pentru rețele cu throughput ridicat prin procesarea batch a apelurilor de sistem și reciclarea memoriei. Optimizează în continuare performanța cu reglarea congestiei pentru a prioritiza recuperarea imediată a datelor și un sistem de programare a sarcinilor în două etape pentru distribuția paralelă a CPU-ului. Implementarea include instrumente de observabilitate pentru urmărirea metricilor de rețea și trasarea evenimentelor de protocol.
Employs slab-based pre-allocation and buffer recycling to minimize garbage collection overhead during packet processing.
Acest proiect este un ghid cuprinzător de programare pentru performanță și o referință pentru limbajul Go, concentrându-se pe eficiența runtime și optimizarea memoriei. Oferă o colecție de tipare și tehnici concepute pentru a crește viteza de execuție prin reducerea overhead-ului garbage collection-ului și optimizarea utilizării memoriei. Resursa se distinge prin implementări de referință detaliate pentru optimizarea memoriei, cum ar fi escape analysis, object pooling și alinierea memoriei structurilor. Oferă strategii specifice pentru reducerea dimensiunii binarului și îmbunătățirea eficienței cache-ului CPU prin optimizarea layout-ului memoriei structurilor și utilizarea placeholder-elor cu alocare zero. Proiectul acoperă o gamă largă de capabilități de inginerie backend, inclusiv gestionarea concurenței cu worker pools și primitive de sincronizare, RPC de înaltă performanță și rutare HTTP, precum și strategii de caching distribuit. Include, de asemenea, îndrumări privind observabilitatea prin profilarea CPU și a memoriei, precum și tipare de asigurare a calității pentru unit testing funcțional și generarea de obiecte mock. Conținutul este structurat ca o serie de tutoriale, exemple arhitecturale și ghiduri de benchmarking pentru a ajuta dezvoltatorii să analizeze și să remedieze blocajele de performanță.
Provides optimizations for pre-allocating slice capacity to avoid expensive runtime re-allocations and copies.
The Boehm-Demers-Weiser conservative C/C++ Garbage Collector (bdwgc, also known as bdw-gc, boehm-gc, libgc)
Conservative garbage collector for C and C++.
Public domain cross platform lock free thread caching 16-byte aligned memory allocator implemented in C
Cross-platform lock-free thread-caching memory allocator.
Public domain cross platform lock free thread caching 16-byte aligned memory allocator implemented in C
Lock-free thread-caching memory allocator.
Custom memory allocators in C++ to improve the performance of dynamic memory allocation
Custom allocators for improved dynamic memory performance.
A memory allocator that automatically reduces the memory footprint of C/C++ applications.
Allocator that automatically reduces application memory footprint.
Message passing based allocator
Message passing based high-performance allocator.
Smart pointers for the (GNU) C programming language
Smart pointers for the C programming language.
STL compatible C++ memory allocator library using a new RawAllocator concept that is similar to an Allocator but easier to use and write.
STL compatible memory allocator library.
Two-Level Segregated Fit memory allocator implementation.
Two-Level Segregated Fit dynamic memory allocator.