Mika Heinonen's Blog
Counter
291

Debian 5.0 GNU C++ makes the fastest code
Wednesday, 09 December 2009 21:52:44 EET

MinGW 3.4.5 C++ vs. Visual Studio 2008 C++ vs. GNU C++ make quite different quality in speed of executable code.
Currently MinGW is 1.902 times slower than VC++, and VC++ is 1.315 times slower than GNU:

MinGW default:
Speedtest 1.0 © 2008 Siipi
Counting 10 billion floating points...
Done. i=1410063201, n=100000.000003, time=41.594000s.
Creating and deleting 1 billion class objects...
Done. i=100000000, time=16.937000s.
Total time=58.531000s.


VC default:
Speedtest 1.0 © 2008 Siipi
Counting 10 billion floating points...
Done. i=1410063201, n=100000.000003, time=41.609000s.
Creating and deleting 1 billion class objects...
Done. i=100000000, time=15.469000s.
Total time=57.078000s.


VC -O3:
Speedtest 1.0 © 2008 Siipi
Counting 10 billion floating points...
Done. i=1410063201, n=100000.000003, time=41.593000s.
Creating and deleting 1 billion class objects...
Done. i=100000000, time=15.453000s.
Total time=57.046000s.


MinGW -O3 -mtune=i686:
Speedtest 1.0 © 2008 Siipi
Counting 10 billion floating points...
Done. i=1410063201, n=100000.000003, time=37.437000s.
Creating and deleting 1 billion class objects...
Done. i=100000000, time=15.766000s.
Total time=53.203000s.


VC IDE default:
Speedtest 1.0 © 2008 Siipi
Counting 10 billion floating points...
Done. i=1410063201, n=100000.000003, time=15.078000s.
Creating and deleting 1 billion class objects...
Done. i=100000000, time=12.953000s.
Total time=28.031000s.


VC IDE -O3:
Speedtest 1.0 © 2008 Siipi
Counting 10 billion floating points...
Done. i=1410063201, n=100000.000003, time=15.078000s.
Creating and deleting 1 billion class objects...
Done. i=100000000, time=12.890000s.
Total time=27.968000s.


openSUSE 11.2 GNU -O3 -mtune=i686:
Speedtest 1.0 © 2008 Siipi
Counting 10 billion floating points...
Done. i=1410065408, n=100000.000009, time=16.060000s.
Creating and deleting 1 billion class objects...
Done. i=100000000, time=5.310000s.
Total time=21.370000s.


Debian 5.0 GNU -O3 -mtune=i686:
Speedtest 1.0 © 2008 Siipi
Counting 10 billion floating points...
Done. i=1410065408, n=100000.000009, time=16.650000s.
Creating and deleting 1 billion class objects...
Done. i=100000000, time=4.620000s.
Total time=21.270000s.