读书人

C语言运行100三次的测试代码 windows版

发布时间: 2012-03-01 10:25:46 作者: rapoo

C语言运行100三次的测试代码 windows版本
/*
* for windows only
* modify by benjiam.
*/

#include <stdio.h>
#include <windows.h>
#define BAILOUT 16
#define MAX_ITERATIONS 1000


int mandelbrot(float x, float y)

{

float cr = y - 0.5;

float ci = x;

float zi = 0.0;

float zr = 0.0;

int i = 0;


while(1) {

i ++;

float temp = zr * zi;

float zr2 = zr * zr;

float zi2 = zi * zi;

zr = zr2 - zi2 + cr;

zi = temp + temp + ci;

if (zi2 + zr2 > BAILOUT)

return i;

if (i > MAX_ITERATIONS)

return 0;

}


}


void run2() {

int x,y;

for (y = -39; y < 39; y++) {

;//fputs( "\n ", stderr);

for (x = -39; x < 39; x++) {

int i = mandelbrot(x/40.0, y/40.0);

if (i==0)

;//fputs( "* ", stderr);

else

;//fputs( " ", stderr);

}

}

;//fputs( "\n ", stderr);

}


void run() {

/*
struct timeval aTv;

gettimeofday(&aTv, NULL);

long init_time = aTv.tv_sec;

long init_usec = aTv.tv_usec;
*/
FILETIME time1;
FILETIME time2;

GetSystemTimeAsFileTime(&time1);
int i;

for (i = 0; i < 100; i++)

run2();


//gettimeofday(&aTv,NULL);

//double query_time = (aTv.tv_sec - init_time) + (double)(aTv.tv_usec - init_usec)/1000000.0;

GetSystemTimeAsFileTime(&time2);
__int64 t1=time1.dwHighDateTime;
t1 < <=32;
t1|=time1.dwLowDateTime;


__int64 t2=time2.dwHighDateTime;
t2 < <=32;
t2|=time2.dwLowDateTime;


printf ( "C Elapsed %0.2d\n ", t2-t1);

}


int main (int argc, const char * argv[]) {

run();

run();

run();
return 0;

}

原来的代码 本质变成了io测试,这是不对的。对c 还是java 都是不公平的。所以我去掉了io操作。




[解决办法]
想得出什么结论

读书人网 >C语言

热点推荐