Tue, 15 Dec 2009 11:15:04 -0500, Sean Kelly wrote: > Steven Schveighoffer Wrote: >> >> I would suspect something else. I would expect actually that in an >> allocation-heavy design, running on multiple cores should be at *least* >> as fast as running on a single core. He also only has 2 cores. For >> splitting the parallel tasks to 2 cores to take 10x longer is very >> alarming. I would suspect application design before the GC in this >> case. If it's a fundamental D issue, then we need to fix it ASAP, >> especially since D2 is supposed to be (among other things) an upgrade >> for multi-core. > > Assuming he's right, the only thing I can come up with that makes even > the remotest sense is that SuspendThread is ridiculously slow for > threads on other cores, but effectively a no-op for threads on the same > core. But the Boehm GC works the same way as far as I know, and if it > had such problems I'm sure we'd have heard about it. It also doesn't > seem reasonable that the Windows kernel team would be able to keep > something so broken in place.
FWIW, memory allocations decrease the throughput on the great Sun Hotspot GC too: http://java.sun.com/docs/hotspot/gc5.0/ gc_tuning_5.html#1.1.Introduction|outline - so it's most probably a bug in the user code.