I have a PC emulator I wrote in Visual C, and I recently switched from Windows 7 32-bit to Windows 8 64-bit. This is the program in question:
http://sourceforge.net/projects/fake86
When you exit the program, it tells you the average number of instructions per second it was able to emulate. The problem is that under Windows 7, it would consistently perform between 35 and 50 million instructions per second depending on what I was emulating in it. Under Windows 8, it never goes beyond around 12 or 13 million! I've tried compiling at both a 32-bit and 64-bit executable, and get the same results.
What could possibly be causing this ridiculous slowdown? I use VS 2010, but have tried VS 2012 to see if it helped. No change, performance remains the same. I don't understand. It couldn't be the fact that I use SDL, could it? All video rendering is handled in a separate thread from the CPU emulator, and I have an AMD FX-8150 eight-core processor overclocked to 4.4 GHz.
This makes no sense to me!