I have been doing an experiment to choose between MinGW and MSVC. I decided to use Adobe C++ Performance Benchmark to do it. While MSVC's output was exceptionally faster on some operations, it was as slow on some other operations. I will add other parts of the benchmark suite when I have time to do them.

I have removed some of the benchmarks that has same results due to character limit, you can interpret them by the pattern I assume.

System Information

  • AMD Athlon(tm) 64 X2 Dual Core Processor 5200+ 2.70GHz
  • 6GB DDR2 800MHz RAM
  • Windows 8

Any idea why the result is slow? Also, can this test's result to interpret a computer game performance (CPU physics engine maybe) because especially floating point benchmarks are slower?

-

MinGW

g++ -march=native -O3 -ffast-math -fomit-frame-pointer -momit-leaf-frame-pointer -flto -fwhole-program -ftree-loop-distribution

simple_types_loop_invariant.exe 

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                  "uint8_t variable add"   1.91 sec   836.38 M     1.00
 1          "uint8_t variable add hoisted"   0.08 sec   19277.11 M     0.04
 2        "uint8_t multiple variable adds"   1.93 sec   829.45 M     1.01
 3             "uint8_t variable subtract"   1.92 sec   832.47 M     1.00
 4   "uint8_t multiple variable subtracts"   2.57 sec   623.30 M     1.34
 5             "uint8_t variable multiply"   1.93 sec   831.17 M     1.01
 6  "uint8_t multiple variable multiplies"   2.56 sec   625.00 M     1.34
 7 "uint8_t multiple variable multiplies2"   1.92 sec   834.64 M     1.00
 8               "uint8_t variable divide"  10.83 sec   147.70 M     5.66
 9     "uint8_t multiple variable divides"  42.14 sec   37.97 M     22.03
10 
Edit
Report