So I have a batch process which I need to run a lot (so every second counts!), to process about 40 million records. I wrote a threaded C# application to do this, and every thing worked great. Initially I was running the system on an Intel Core 2 Duo E4600 and it would complete the processing in roughly 70 seconds.
We then built a new system using an Intel Core 2 Quad Q6600 and under testing, this time went down to about 45 seconds - roughly what i expected from a threaded application running on more cores.
This was all fine and dandy, untill we tried to merge the two systems. We took the hard-drive (containing months of data) from the Core 2 Duo, wiped the C partition (all the data was stored on a separate partition), inserted it into the Quad system and reinstalled windows. Upon rerunning the application, running time had gone up to 150 seconds!
The only major differences are that the quad system was initially just for testing so we chucked in an old graphics card and IDE hard-drive. These were then replaced with a better graphics card, the SATA hard-drive and the memory from the Duo System. Since the process doesn't use the graphics card at all, and only reads and writes from the hard-drive before and after its run (all done in memory) - i would have thought they'd have almost no impact.
Intel Core 2 Duo E4600 + SATA drive + Radeon X1950 Pro + 2 gig ram = 70 seconds
Intel Core 2 Quad Q6600 + IDE hard-drive + old graphics card + 1gig ram= 45 seconds.
Intel Core 2 Quad Q6600 + SATA drive + Radeon X1950 Pro + 2 gig ram = 150 seconds
So... does anyone have any idea why a re-installation of windows and better components would make my system run 3 times slower?