Re: [PATCH] Add custom memory allocator to MinGW and MacOS builds
- From
Marius Storm-Olsen <mstormo@gmail.com>
- Date
- Apr 4, 2009, 05:16 UTC
- Message-ID
- <49D6ED32.4000706@gmail.com>
- In-Reply-To
- <a5b261830904031412o60b7eb4fv7e25a2ca4f89fe60@mail.gmail.com>
Pat Thoyts said the following on 03.04.2009 23:12:
Show 20 quoted lines
> 2009/4/3 Marius Storm-Olsen <marius@trolltech.com>: >> 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