As i don't know which party (g++, stdc++, cygwin) to put the blame on i'll start here. I've traced back a weird performance issue to a 'new' returning non cpu-local memory but only when the binary is launched from the shell/console. That suggests some crt friction. (threads where those allocations happen are properly binded to one cpu)
That's on xp sp2, on a bi-k8 box with Using built-in specs. Target: i686-pc-cygwin Configured with: ../configure --prefix=/usr/local/gcc-4.2-20060624 --enable-languages=c,c++ --enable -threads=posix --with-system-zlib --disable-checking --disable-nls --disable-shared --disable-win32- registry --verbose --enable-bootstrap --with-gcc --with-gnu-ld --with-gnu-as --with-cpu=k8 Thread model: posix gcc version 4.2.0 20060624 (experimental) Does that ring a bell or shall i move along the chain? :)