1.4.0
-
Improved cross thread deallocations by using per-span atomic free list to minimize thread
contention and localize free list processing to actual span -
Change span free list to a linked list, conditionally initialized one memory page at a time
-
Reduce number of conditionals in the fast path allocation and avoid touching heap structure
at all in best case -
Avoid realigning block in deallocation unless span marked as used by alignment > 32 bytes
-
Revert block granularity and natural alignment to 16 bytes to reduce memory waste
-
Bugfix for preserving data when reallocating a previously aligned (>32 bytes) block
-
Use compile time span size by default for improved performance, added build time RPMALLOC_CONFIGURABLE preprocessor directive to reenable configurability of span and page size
-
More detailed statistics
-
Disabled adaptive thread cache by default
-
Fixed an issue where reallocations of large blocks could read outsize of memory page boundaries
-
Tag mmap requests on macOS with tag 240 for identification with vmmap tool