Free Lunch

cino hilliard hillcino368@hotmail.com
Mon Apr 17 19:43:00 GMT 2006


The following code appears to provide a free lunch. Can someone try this on 
their systems
to see if they get similar results?

Thanks,
Cino

//                                        Free Lunch
//
//Mind boggling code in Gcc 3.4.4. incrementing a variable in a loop runs 20 
times faster than just
//an empty loop.
//System: p4 2.53 ghz xp pro
//Compile data
//C:\gcc\examples>f:\gcc\bin\g++ COUNTgcc.c -o COUNTgcc.exe -s -O3 
-mtune=pentium4
//C:\gcc\examples>g++ -dumpversion
//3.4.4

#include <windows.h>
#include <stdio.h>
#define timer GetTickCount()/1000.0
float t1,t2;
long count1(long);
long count2(long);
int main()
{
t1=timer;
printf("%s%u\n"," j = ",count1(2000000000));
t2=timer;
printf("%s%f\n"," Sec = ",t2-t1);
printf("\n");
t1=timer;
printf("%s%u\n"," y = ",count2(2000000000));
t2=timer;
printf("%s%f\n"," Sec = ",t2-t1);

getchar();
return 0;
}
long count1(long i)
{
long j;
for(j=1;j<=i;j++)
{
}
return j;
}

long count2(long i)
{
long j,y=0,s=0;
for(j=1;j<=i;j++)
{
y+=1;
//s+=7;
}
return y;
}


output

j = 2000000001
Sec = 0.984375

y = 2000000000
Sec = 0.046875




More information about the Gcc-help mailing list