Gmane
From: Alex Vinokur <alexvn <at> connect.to>
Subject: [Summary] C++ Compilers' Comparative Performance : Computing Very Long Fibonacci Numbers
Newsgroups: gmane.comp.lang.c++.perfometer
Date: 2004-04-13 04:02:57 GMT (5 years, 11 weeks, 5 days, 16 hours and 11 minutes ago)
      #######################################################
      # C++ Compilers : Comparative Performance Measurement #
      #######################################################
      Compilers   : GNU gcc, Digital Mars C/C++, Visual C++.NET, Borland C++, Intel C++
      Testsuite   : Computing very long Fibonacci numbers
      Source      : http://groups.google.com/groups?selm=bo4nls%2417vfq6%241%40ID-79865.news.uni-berlin.de
                    with addition of John Harrison's improvement
                    (see http://groups.google.com/groups?selm=c58obb%242qat6b%241%40ID-196037.news.uni-berlin.de)

      Metrics
         * CPU time  - Processor time used (seconds)

      Environment
         * Windows 2000 Professional Ver 5.0 Build 2195 Service Pack 2
         * Intel(R) Celeron(R) CPU 1.70 GHz

      Test description
         * 5 runs were performed for each <Compiler, Optimize Level, Fib-N>
         * The best result has been selected

Report-2.1 (2004-04-13)
==================================================================
|      Compiler      | Opt.  | Fib-10000 | Fib-25000 | Fib-50000 |
|                    | Level |           |           |           |
|================================================================|
| ### GNU gcc compiler                                           |
|----------------------------------------------------------------|
|                    |       |           |           |           |
| g++ 3.3.1 (Cygwin) | None  |   0.370   |    1.622  |    6.008  |
|                    |  O1   |   0.220   |    0.921  |    3.344  |
|                    |  O2   |   0.210   |    0.901  |    3.264  |
|                    |  O3   |   0.210   |    0.901  |    3.234  |
|                    |       |           |           |           |
| g++ 3.3.1 (Cygwin) | None  |   0.230   |    1.241  |    4.626  |
| Mingw32 Interface  |  O1   |   0.120   |    0.630  |    2.403  |
|                    |  O2   |   0.110   |    0.610  |    2.313  |
|                    |  O3   |   0.110   |    0.630  |    2.353  |
|                    |       |           |           |           |
| gpp 3.3.2 (DJGPP)  | None  |   0.330   |    2.308  |   16.813  |
|                    |  O1   |   0.110   |    1.209  |   10.934  |
|                    |  O2   |   0.110   |    1.209  |   10.879  |
|                    |  O3   |   0.110   |    1.264  |   11.099  |
|                    |       |           |           |           |
|----------------------------------------------------------------|
| ### GNU gcc compiler, STLport                                  |
| ### Proposed and supported by Gerrit P. Haase                  |
|----------------------------------------------------------------|
| g++ 3.3.1 (Cygwin) | None  |    0.280  |    1.161  |    4.215  |
| STLport 4.5.3      |  O1   |    0.160  |    0.750  |    2.853  |
|                    |  O2   |    0.160  |    0.760  |    2.903  |
|                    |  O3   |    0.170  |    0.811  |    3.094  |
|                    |       |           |           |           |
|----------------------------------------------------------------|
| ### Digital Mars C/C++ Compiler, STLport                       |
|----------------------------------------------------------------|
| DMC Version 8.40.2 | None  |    0.130  |    0.741  |    3.415  |
| STLport 4.5.3      | Speed |    0.111  |    0.641  |    2.984  |
|                    | Space |    0.110  |    0.631  |    2.994  |
|                    |       |           |           |           |
|----------------------------------------------------------------|
| ### Visual C++.NET                                             |
|----------------------------------------------------------------|
| Visual C++ 7.0     |  Od   |    0.320  |    1.141  |    3.955  |
| (Managed C++)      |  O2   |    0.270  |    0.931  |    3.364  |
|                    |  Ox   |    0.270  |    0.961  |    3.334  |
|                    |       |           |           |           |
| Visual C++ 7.0     |  Od   |    0.650  |    3.895  |   15.312  |
| (Unmanaged C++)    |  O2   |    0.120  |    0.701  |    2.713  |
|                    |  Ox   |    0.120  |    0.701  |    2.733  |
|                    |       |           |           |           |
|----------------------------------------------------------------|
| ### Borland C++                                                |
|----------------------------------------------------------------|
| Borland C++ 5.5.1  |  Od   |    0.170  |    0.971  |    3.696  |
|                    |  O2   |    0.140  |    0.741  |    2.854  |
|                    |  O2i  |    0.140  |    0.751  |    2.834  |
|                    |       |           |           |           |
|----------------------------------------------------------------|
| ### Intel C++                                                  |
|----------------------------------------------------------------|
| Intet C++ 8.0      |  Od   |    0.791  |    4.626  |   18.326  |
|                    |  O2   |    0.120  |    0.680  |    2.763  |
|                    |  Ox   |    0.130  |    0.680  |    2.613  |
|                    |  fast |    0.140  |    0.791  |    3.114  |
|                    |       |           |           |           |
==================================================================

Compilation
===========

   * g++ 3.3.1, Cygwin
     -----------------
     g++ -W -Wall fib_time.cpp      -o f-cyg-0.exe
     g++ -W -Wall fib_time.cpp  -O1 -o f-cyg-1.exe
     g++ -W -Wall fib_time.cpp  -O2 -o f-cyg-2.exe
     g++ -W -Wall fib_time.cpp  -O3 -o f-cyg-3.exe

   * g++ 3.3.1, Cygwin, Mingw32 interface
     ------------------------------------
     g++ -W -Wall -mno-cygwin fib_time.cpp     -o f-mgw-0.exe
     g++ -W -Wall -mno-cygwin fib_time.cpp -O1 -o f-mgw-1.exe
     g++ -W -Wall -mno-cygwin fib_time.cpp -O2 -o f-mgw-2.exe
     g++ -W -Wall -mno-cygwin fib_time.cpp -O3 -o f-mgw-3.exe

   * g++ 3.3.1, Cygwin, STLport 4.5.3
     --------------------------------
     g++ -W -Wall fib_time.cpp -I/STLport-4.5.3/stlport /lib/libstlport_cygwin.a      -o f-cgp-0.exe
     g++ -W -Wall fib_time.cpp -I/STLport-4.5.3/stlport /lib/libstlport_cygwin.a  -O1 -o f-cgp-1.exe
     g++ -W -Wall fib_time.cpp -I/STLport-4.5.3/stlport /lib/libstlport_cygwin.a  -O2 -o f-cgp-2.exe
     g++ -W -Wall fib_time.cpp -I/STLport-4.5.3/stlport /lib/libstlport_cygwin.a  -O3 -o f-cgp-3.exe

   * gpp 3.3.2, DJGPP
     ----------------
     gpp -W -Wall fib_time.cpp      -o f-dj-0.exe
     gpp -W -Wall fib_time.cpp  -O1 -o f-dj-1.exe
     gpp -W -Wall fib_time.cpp  -O2 -o f-dj-2.exe
     gpp -W -Wall fib_time.cpp  -O3 -o f-dj-3.exe

   * Digital Mars C/C++ 8.35n, STLport 4.5.3
     ---------------------------------------
     dmc -I.          -IC:/dm/stlport/stlport fib_time.cpp -of-dmc-0.exe
     dmc -o+speed -I. -IC:/dm/stlport/stlport fib_time.cpp -of-dmc-t.exe
     dmc -o+space -I. -IC:/dm/stlport/stlport fib_time.cpp -of-dmc-m.exe

   * Visual C++ 7.0 (Managed C++)
     ----------------------------
     cl fib_time.cpp /Od /EHsc /D "WIN32" /D "_MBCS" /W3 /clr /TP /of-msm-0.exe
     cl fib_time.cpp /O2 /EHsc /D "WIN32" /D "_MBCS" /W3 /clr /TP /of-msm-2.exe
     cl fib_time.cpp /Ox /EHsc /D "WIN32" /D "_MBCS" /W3 /clr /TP /of-msm-x.exe

   * Visual C++ 7.0 (Unmanaged C++)
     ------------------------------
     cl fib_time.cpp /Od /EHsc /D "WIN32" /D "_MBCS" /W3 /TP      /of-msu-0.exe
     cl fib_time.cpp /O2 /EHsc /D "WIN32" /D "_MBCS" /W3 /TP      /of-msu-2.exe
     cl fib_time.cpp /Ox /EHsc /D "WIN32" /D "_MBCS" /W3 /TP      /of-msu-x.exe

   * Borland C++ 5.5.1
     -----------------
     bcc32 -Od     -ef-brl-0 fib_time.cpp
     bcc32 -O2     -ef-brl-2 fib_time.cpp
     bcc32 -O2 -Oi -ef-brl-i fib_time.cpp

   * Intel C++ 8.0
     -------------
     icl fib_time.cpp /Od       /Fef-itl-0.exe
     icl fib_time.cpp /O2       /Fef-itl-2.exe
     icl fib_time.cpp /Ox       /Fef-itl-x.exe
     icl fib_time.cpp /fast     /Fef-itl-f.exe

The names of DLL files on which the programs depend
===================================================

   * g++ 3.3.1, Cygwin
     -----------------
    C:\cygwin\bin\cygwin1.dll
       C:\WINNT\System32\KERNEL32.dll
         C:\WINNT\System32\NTDLL.DLL

   * g++ 3.3.1, Cygwin, Mingw32 interface
     ------------------------------------
      C:\WINNT\System32\msvcrt.dll
        C:\WINNT\System32\KERNEL32.dll
          C:\WINNT\System32\NTDLL.DLL

   * g++ 3.3.1, Cygwin, STLport 4.5.3
     --------------------------------
     C:\cygwin\bin\cygwin1.dll
       C:\WINNT\System32\KERNEL32.dll
         C:\WINNT\System32\NTDLL.DLL

   * gpp 3.3.2, DJGPP
     ----------------
     No dynamic linking.

   * Digital Mars C/C++ 8.35n, STLport 4.5.3
     ---------------------------------------
     C:\WINNT\System32\KERNEL32.DLL
       C:\WINNT\System32\NTDLL.DLL
     C:\WINNT\System32\USER32.DLL
       C:\WINNT\System32\GDI32.DLL

   * Visual C++ 7.0 (Managed C++)
     ----------------------------
     C:\WINNT\System32\KERNEL32.dll
       C:\WINNT\System32\NTDLL.DLL
     C:\WINNT\System32\mscoree.dll
       C:\WINNT\System32\ADVAPI32.dll
         C:\WINNT\System32\RPCRT4.DLL

   * Visual C++ 7.0 (Unmanaged C++)
     ------------------------------
     C:\WINNT\System32\KERNEL32.dll
       C:\WINNT\System32\NTDLL.DLL

   * Borland C++ 5.5.1
     -----------------
     C:\WINNT\System32\KERNEL32.DLL
       C:\WINNT\System32\NTDLL.DLL
     C:\WINNT\System32\USER32.DLL
       C:\WINNT\System32\GDI32.DLL

   * Intel C++ 8.0
     -------------
     C:\WINNT\System32\KERNEL32.DLL
       C:\WINNT\System32\NTDLL.DLL

   ------
   Alex Vinokur
     mailto:alexvn <at> connect.to
     http://mathforum.org/library/view/10978.html

-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click