From: Sternbach, W. [IT] <wil...@ss...> - 2002-03-06 14:52:28
|
Hello, I work on some long running number crunching programs which require hours to run. I wanted to compare the GCC with other Compilers to see how Optimizing the GNU C++ compiler is. I created a small benchmark program below which displays the time after doing each set of 1 million multiplications, divisions, additions and subtractions. I compared the GNU C++ compiler versus the Microsoft MSVC Version 5 compiler and also the Borland Turbo C++ compiler. I used the following compiler options: gcc -O3 cputime.c -ocputime.exe (GNU C++ compiler) cl /O2x /G5 cputime.c (Microsoft Visual C++ Version 5 Dos prompt compiler). tcc -G -O cputime.c (Borland's Turbo C++ compiler). The results are as you would expect: Fastest: MSVC Middle: GNU C++ Slowest: Borland Turbo C++. I keep a copy of these cputime.exe's around on a diskette, and they help me evaluate PC's speed. I learned that an Intel Pentium II 366 MHZ is the same speed as an AMD K6 500 MHZ because they both require the same amount of time to run the cputime.c program below. I've attached a copy of the program which you can copy into notepad, save, and compile. Please let me know what you think. The source code for the program cputime.c which I wrote follows: #include <stdio.h> #include <time.h> main() { long i; double fp, fp_dummy, fp_accum = 0; time_t init_time = time(0); /* init_time = clock time now */ for (i = 1; i < 1000001; ++i) { for (fp=0.1234567890;fp < 1000000;++fp) { fp_dummy = (((fp * fp) / 3.1415926536) + 2.718281828) - 1.23456789; fp_accum += fp_dummy; } printf("%ldm, time = %.0lf seconds, ignore = %lf\n", i, difftime(time(0), init_time), fp_accum); } return 0; } |