Releases: spaskalev/buddy_alloc
Releases · spaskalev/buddy_alloc
v0.1.4
- Fixed a few bugs when resizing upwards
- Minor performance improvements
- The alignment and minimum allocation size can now be specified by defining BUDDY_ALLOC_ALIGN. This will be made more user-friendly in subsequent releases.
- Enhanced debugging by adding an invariant check function and making the debug function output to a FILE *.
v0.1.3
v0.1.2
- Numerous performance improvements
- Fixed two bugs related to downsizing the arena
Debug build performance of buddy_brk.c vs glibc's release malloc on stress-ng.
Note that buddy_brk.c does not return memory to the kernel, so take it with a grain of salt. Still, it is less than twice as slow as glibc now :)
$ env LD_PRELOAD=./buddy_shared.so ~/dev/stress-ng/./stress-ng --malloc 1 --malloc-ops 100000 2>&1
stress-ng: info: [2896] defaulting to a 86400 second (1 day, 0.00 secs) run per stressor
stress-ng: info: [2896] dispatching hogs: 1 malloc
stress-ng: info: [2896] successful run completed in 0.16s
$ env ~/dev/stress-ng/./stress-ng --malloc 1 --malloc-ops 100000 2>&1
stress-ng: info: [2900] defaulting to a 86400 second (1 day, 0.00 secs) run per stressor
stress-ng: info: [2900] dispatching hogs: 1 malloc
stress-ng: info: [2900] successful run completed in 0.11s
v0.1.1
- Use an optimal fit strategy to avoid fragmentation
- Fixed a bug in buddy_realloc that would cause data corruption.
- Made buddy_malloc and buddy_calloc allocate on zero-sized requests.
- Use the buddy_brk wrapper with perf and stress-ng to identify bottlenecks.
- Fixed a few performance issues identified by the stress-ng tests.
Debug build performance of buddy_brk.c vs glibc's release malloc on stress-ng
$ env LD_PRELOAD=./buddy_shared.so ~/dev/stress-ng/./stress-ng --malloc 1 --malloc-ops 100000 2>&1
stress-ng: info: [122434] defaulting to a 86400 second (1 day, 0.00 secs) run per stressor
stress-ng: info: [122434] dispatching hogs: 1 malloc
stress-ng: info: [122434] successful run completed in 0.48s
$ env ~/dev/stress-ng/./stress-ng --malloc 1 --malloc-ops 100000 2>&1
stress-ng: info: [122437] defaulting to a 86400 second (1 day, 0.00 secs) run per stressor
stress-ng: info: [122437] dispatching hogs: 1 malloc
stress-ng: info: [122437] successful run completed in 0.11s