Implement a replacement to GSlice
Submitted by Tim Müller
Created attachment 371701
Drop use of GSlice allocator in favour of plain g_malloc()/g_free()
Just gonna put this here. Enjoy.
The "Benchmarks show" bit could probably need more verification, but in the few tests I have run I have found either positive performance impact or no discernable performance impact. It's hard to do proper measurements for our purposes, we need to test alloc from one thread and free in another thread for realistic usage, while at the same time having a test case where allocation/free takes up most of the cycles. I have run some tests on a low-powered windows ec2 machine, that showed GSLice being ridiculously slow compared to the system allocator there (windows server 2006 =~ win10).
IIRC main reason to use GSlice was because the sys allocator on
~Windows XP was horrendous, but that doesn't seem to be the case any longer, and on Linux the glibc allocator seems superior nowadays.
Patch 371701, "Drop use of GSlice allocator in favour of plain g_malloc()/g_free()":