Re: [PATCH] Add custom memory allocator to MinGW and MacOS builds
From: Marius Storm-Olsen <hidden>
Date: 2016-06-15 22:46:33
Pat Thoyts said the following on 03.04.2009 23:12:
2009/4/3 Marius Storm-Olsen [off-list ref]:quoted
Marius Storm-Olsen said the following on 03.04.2009 15:52:quoted
The standard allocator on Windows is pretty bad prior to Windows Vista, and nedmalloc is better than the modified dlmalloc provided with newer versions of the MinGW libc.Actually, it just struck me that it's probably the synchronization primitives which are better on Vista than XP, and not the memory manager? (Since mingw 4.3.3-tdm on XP and Vista most likely use the same dlmalloc fork?) ^shrug^ Anyways, not that I haven't tried to 'tune' nedmalloc in any way, just ensured that it compiles with the different MinGWs which I benchmarked. So, if anyone feels like it, maybe we can squeeze more performance out of it by tweaking it.The difference on Windows Vista is that the low fragmentation heap is the default memory allocator. On Windows XP you need to enable it specifically for an application. So a possible alternative to this is just to enable the low fragmentation heap. (done via GetProcessHeaps and HeapSetInformation Win32 API calls).
I know about the low-fragmentation heap, but given that it was only supported on XP and up (and given that I also had MacOSX in mind when considering a custom allocator; see MacOSX got 12% itself ;-), I didn't even consider it. Thanks for clearing up the differences on the Vista and XP benchmarks though! Makes sense. -- .marius