From: Marius Storm-Olsen Date: Sat, 04 Apr 2009 05:16:34 GMT Subject: Re: [PATCH] Add custom memory allocator to MinGW and MacOS builds Message-ID: <49D6ED32.4000706@gmail.com> In-Reply-To: Pat Thoyts said the following on 03.04.2009 23:12: > 2009/4/3 Marius Storm-Olsen : >> Marius Storm-Olsen said the following on 03.04.2009 15:52: >>> 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