I wrote a quick little loop to test the performance of certain combinations of instructions on my CPU and was curious what people with different CPUs get. It's 100% integer code - no floating point. It's designed to be mostly independent of FSB / memory performance and should fit in the CPU caches.
It produces no output, so you have to time it. On linux, do:
$ time ./foo32
or
$ time ./foo64
On windows, do:
C:\> timeit.bat (ignore any "Missing operator" messages)
Run it a few times and take a good result.
What you'll need:
(Windows) windows timer script and 32 bit windows binary (should work on 64 bit windows too)
(Linux, 32 bit) 32 bit linux binary
(Linux, 64 bit) 64 bit linux binary
Pretty results (New)
Graph
raw data
My results:
Athlon 64 X2 4400+ (2.3 GHz), 64 bit linux - 10.73 seconds
Athlon 64 X2 4400+ (2.3 GHz), 32 bit linux - 10.82 seconds
Athlon 64 X2 4400+ (2.3 GHz), 32 bit windows - 10.81 seconds
Athlon XP 2100+ (1.733 GHz), 32 bit windows - 17 seconds
From friends:
1.2 GHz tbird, 32 bit linux - 26.726 seconds
Core Duo 2.0 GHz, windows - 19 seconds
P4 2.7 GHz - 14.48 seconds
2200+ tbred (1.8GHz), 32 bit linux - 15.47 seconds
celery m (dothan) (1.4 GHz) - 26.82 seconds
Athlon 64 X2 (OC'ed to 2.7 GHz ) - 9.22 seconds
From replies
Core 2 Quad Q6600, vista (2.4 GHz) - 13 seconds (cputeq)
Core 2 Duo E6600, vista (OC'ed to 3.2 GHz) - 10 seconds (bfdd)
Core 2 Duo E6750 (OC'ed to 3.5 GHz) - 8.96 seconds (bryanW1995)
Core 2 Duo E2160 (OC'ed to 2.58 GHz) - 13 seconds (spikesoldier)
Athlon XP (2.3 GHz) - 12 seconds (SilentAssassin)
Core 2 Duo E6750 (OC'ed to 3.4 GHz) - 8.9 s (honolululu)
Source code if you don't want to use my binaries:
32 bit windows source (built with MSVC6)
32 bit linux source (g++ -O0 -o foo32 foo32.cpp if you're on a 64bit machine, add -m32)
64 bit linux source (g++ -O0 -o foo64 foo64.cpp)
It produces no output, so you have to time it. On linux, do:
$ time ./foo32
or
$ time ./foo64
On windows, do:
C:\> timeit.bat (ignore any "Missing operator" messages)
Run it a few times and take a good result.
What you'll need:
(Windows) windows timer script and 32 bit windows binary (should work on 64 bit windows too)
(Linux, 32 bit) 32 bit linux binary
(Linux, 64 bit) 64 bit linux binary
Pretty results (New)
Graph
raw data
My results:
Athlon 64 X2 4400+ (2.3 GHz), 64 bit linux - 10.73 seconds
Athlon 64 X2 4400+ (2.3 GHz), 32 bit linux - 10.82 seconds
Athlon 64 X2 4400+ (2.3 GHz), 32 bit windows - 10.81 seconds
Athlon XP 2100+ (1.733 GHz), 32 bit windows - 17 seconds
From friends:
1.2 GHz tbird, 32 bit linux - 26.726 seconds
Core Duo 2.0 GHz, windows - 19 seconds
P4 2.7 GHz - 14.48 seconds
2200+ tbred (1.8GHz), 32 bit linux - 15.47 seconds
celery m (dothan) (1.4 GHz) - 26.82 seconds
Athlon 64 X2 (OC'ed to 2.7 GHz ) - 9.22 seconds
From replies
Core 2 Quad Q6600, vista (2.4 GHz) - 13 seconds (cputeq)
Core 2 Duo E6600, vista (OC'ed to 3.2 GHz) - 10 seconds (bfdd)
Core 2 Duo E6750 (OC'ed to 3.5 GHz) - 8.96 seconds (bryanW1995)
Core 2 Duo E2160 (OC'ed to 2.58 GHz) - 13 seconds (spikesoldier)
Athlon XP (2.3 GHz) - 12 seconds (SilentAssassin)
Core 2 Duo E6750 (OC'ed to 3.4 GHz) - 8.9 s (honolululu)
Source code if you don't want to use my binaries:
32 bit windows source (built with MSVC6)
32 bit linux source (g++ -O0 -o foo32 foo32.cpp if you're on a 64bit machine, add -m32)
64 bit linux source (g++ -O0 -o foo64 foo64.cpp)