
AsmJit Project
Machine Code Generation for C++
Virtual memory management.
AsmJit's virtual memory management is divided into two main categories:
Options used by JitAllocator.
Constant | Description |
---|---|
kNone | No options. |
kUseDualMapping | Enables the use of an anonymous memory-mapped memory that is mapped into two buffers having a different pointer. The first buffer has read and execute permissions and the second buffer has read+write permissions. See VirtMem::allocDualMapping() for more details about this feature.
|
kUseMultiplePools | Enables the use of multiple pools with increasing granularity instead of a single pool. This flag would enable 3 internal pools in total having 64, 128, and 256 bytes granularity. This feature is only recommended for users that generate a lot of code and would like to minimize the overhead of |
kFillUnusedMemory | Always fill reserved memory by a fill-pattern. Causes a new block to be cleared by the fill pattern and freshly released memory to be cleared before making it ready for another use. |
kImmediateRelease | When this flag is set the allocator would immediately release unused blocks during When this flag is not set the allocator would keep one empty block in each pool to prevent excessive virtual memory allocations and deallocations in border cases, which involve constantly allocating and deallocating a single block caused by repetitive calling |
kCustomFillPattern | Use a custom fill pattern, must be combined with |