Lines Matching full:memory
1 # rpmalloc - General Purpose Memory Allocator
2 This library provides a cross platform lock free thread caching 16-byte aligned memory allocator im…
14 …with atomic operations and an mmap-style virtual memory management API. The API used to map/unmap …
19 …s faster than most popular memory allocators like tcmalloc, hoard, ptmalloc3 and others without ca…
21 …s. It measures number of memory operations performed per CPU second, as well as memory overhead by…
37 … call __rpmalloc_finalize__ in order to release caches and unmap virtual memory, as well as prepar…
44 …l at process start to initialize the allocator with a custom memory mapping backend, memory page s…
68 Free memory pages are cached both per thread and in a global cache for all threads. The size of the…
70 …che unless thread finishes and never unmap memory pages back to the OS. Highest performance but la…
72 …t defined to 0, set to 1 to make global caches infinite, i.e never unmap memory pages back to the …
83 …s will cause a slight overhead in runtime to collect statistics for each memory operation, and wil…
91 …igurable memory page and span sizes, define __RPMALLOC_CONFIGURABLE__ to 1. By default, memory pag…
99 …memory blocks according to a preconfigured set of size classes, up to 2MiB. Larger blocks are mapp…
102 …memory pages (spans) are mapped to this alignment boundary. On Windows this is automatically guara…
104 Memory blocks are divided into three categories. For 64KiB span size/alignment the small blocks are…
106 …nd medium size class has an associated span (meaning a contiguous set of memory pages) configurati…
108 Spans for small and medium blocks are cached in four levels to avoid calls to map/unmap memory page…
114 # Memory mapping
115 …memory pages as needed, either `VirtualAlloc` on Windows or `mmap` on POSIX systems. If you want t…
117 …memory address from the memory map function MUST be aligned to the memory page size and the memory…
119 Memory mapping requests are always done in multiples of the memory page size. You can specify a cus…
121 …memory spans are mapped in batches controlled by the `span_map_count` configuration variable (whic…
126 …span of memory. By default the allocator will greedily grab and break any larger span from the ava…
128 …memory pressure when the span is evicted from caches and scheduled to be unmapped. The entire orig…
130 …memory map/unmap function you need to take this into account by looking at the `release` parameter…
132 # Memory fragmentation
133 …memory fragmentation by the allocator in the sense that it will not leave unallocated and unusable…
135 …memory fragmentation in the meaning that a request for x bytes followed by a request of y bytes wh…
137 …the same span of memory pages (unless the span runs out of free blocks). The rpmalloc implementati…
140 …ll to __rpmalloc_heap_free_all__ without having to maintain ownership of memory blocks. Note that …
143 …memory blocks and another thread frees the blocks. In some allocators the free blocks need to trav…
146 Threads that keep ownership of allocated memory blocks within the thread and free the blocks from t…
148 Threads that have allocation patterns where the difference in memory usage high and low water marks…
151 …memory pages per size class, a thread that allocates just a few blocks of each size class (16, 32,…
153 …MAX_SPAN_CACHE_DIVISOR__ define in the source code (at the cost of higher average memory overhead).
156 …memory mapping with configured span size to be able to always return a memory area with the requir…