github mjansson/rpmalloc 1.4.1

  • Dual license as both released to public domain or under MIT license

  • Allow up to 4GiB memory page sizes

  • Fix an issue where large page sizes in conjunction with many threads waste a lot of memory (previously each heap occupied an entire memory page, now heaps can now share a memory page)

  • Fixed compilation issue on macOS when ENABLE_PRELOAD is set but not ENABLE_OVERRIDE

  • New first class heap API allowing explicit heap control and release of entire heap in a single call

  • Added rpaligned_calloc function for aligned and zero intialized allocations

  • Fixed natural alignment check in rpaligned_realloc to 16 bytes (check was 32, which is wrong)

  • Minor performance improvements for all code paths by simplified span handling

  • Minor performance improvements and for aligned allocations with alignment less or equal to 128 bytes by utilizing natural block alignments

  • Refactor finalization to be compatible with global scope data causing dynamic allocations and frees, like C++ objects with custom ctors/dtors

  • Refactor thread and global cache to be array based instead of list based for improved performance and cache size control

  • Added missing C++ operator overloads with ENABLE_OVERRIDE when using Microsoft C++ runtimes

  • Fixed issue in pvalloc override that could return less than a memory page in usable size

  • Added a missing null check in the non-hot allocation code paths

6 months ago