22 रिपॉजिटरी
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 is a high-performance C++ memory allocator and runtime library designed to manage heap memory for large-scale services. It functions as a thread-caching memory allocator that reduces lock contention in multi-threaded applications to maintain stability and performance during concurrent workloads. The project focuses on high-concurrency memory allocation and multithreaded application scaling. It employs a strategy of providing per-thread caches to ensure fast memory access and improve the throughput of parallel programs in low-level system programming environments. The library manages
Fast, multi-threaded malloc implementation.
यह प्रोजेक्ट Go प्रोग्रामिंग भाषा के लिए एक व्यापक गाइड का चीनी अनुवाद है। यह एक स्थानीयकृत शैक्षिक संसाधन और तकनीकी मैनुअल के रूप में कार्य करता है जिसे भाषा के सिंटैक्स, डिज़ाइन और सॉफ़्टवेयर विकास पर मार्गदर्शन प्रदान करने के लिए डिज़ाइन किया गया है। यह संसाधन Go भाषा की शिक्षा के एक व्यापक दायरे को कवर करता है, जिसमें प्रोग्रामिंग पैटर्न और सिस्टम डिज़ाइन का कार्यान्वयन शामिल है। इसमें अनुवादित पाठ और उदाहरण शामिल हैं जो कोर भाषा सुविधाओं जैसे कि कॉनकरेंसी और इंटरफ़ेस के उपयोग पर केंद्रित हैं। सामग्री भाषा के मूल सिद्धांतों, डेटा मॉडलिंग, रनटाइम रिफ्लेक्शन और मेमोरी मैनेजमेंट सहित विभिन्न क्षमता क्षेत्रों में फैली हुई है। यह सॉफ़्टवेयर आर्किटेक्चर, एरर हैंडलिंग, क्वालिटी एश्योरेंस और वेब नेटवर्किंग का विस्तृत कवरेज भी प्रदान करता है। दस्तावेज़ीकरण को एक तकनीकी मैनुअल के रूप में संरचित किया गया है जिसमें सटीक शिक्षण सुनिश्चित करने के लिए अनुवादित सामग्री, एराटा और सुधार शामिल हैं।
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 UDP पर विश्वसनीय डेटा ट्रांसमिशन के लिए KCP प्रोटोकॉल को लागू करने वाली एक Go लाइब्रेरी है। यह एक स्ट्रीम-आधारित ट्रांसपोर्ट लेयर और एक स्वचालित रिपीट रिक्वेस्ट नेटवर्क प्रोटोकॉल प्रदान करता है ताकि नेटवर्क टेल लेटेंसी को कम करते हुए ऑर्डर्ड डिलीवरी सुनिश्चित की जा सके। यह प्रोजेक्ट Reed-Solomon कोड के माध्यम से फॉरवर्ड एरर करेक्शन के उपयोग के माध्यम से खुद को अलग करता है ताकि रिट्रांसमिशन के बिना खोए हुए पैकेटों को पुनर्निर्माण किया जा सके। यह पैकेट हेडर और पेलोड दोनों को एन्क्रिप्ट करने के लिए ब्लॉक सिफर का उपयोग करके सुरक्षित UDP टनलिंग भी लागू करता है। यह लाइब्रेरी बैच सिस्टम कॉल प्रोसेसिंग और मेमोरी रीसाइक्लिंग के माध्यम से उच्च-थ्रूपुट नेटवर्किंग के लिए क्षमताएं शामिल करती है। यह तत्काल डेटा रिकवरी को प्राथमिकता देने के लिए कंजेशन ट्यूनिंग और समानांतर CPU वितरण के लिए दो-चरणीय कार्य शेड्यूलिंग प्रणाली के साथ प्रदर्शन को और अधिक अनुकूलित करती है। इम्प्लीमेंटेशन में नेटवर्क मेट्रिक्स को ट्रैक करने और प्रोटोकॉल इवेंट्स को ट्रेस करने के लिए ऑब्जर्वेबिलिटी टूल्स शामिल हैं।
Employs slab-based pre-allocation and buffer recycling to minimize garbage collection overhead during packet processing.
This project is a comprehensive performance programming guide and reference for the Go language, focusing on runtime efficiency and memory optimization. It provides a collection of patterns and techniques designed to increase execution speed by reducing garbage collection overhead and optimizing memory usage. The resource distinguishes itself through detailed reference implementations for memory optimization, such as escape analysis, object pooling, and structure memory alignment. It offers specific strategies for reducing binary size and improving CPU cache efficiency through structure memor
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.