// sparksandflames.com #define PI 3.14159265358979323846 #define MAXCMD 1024 #define MAXVARNAME 32 #ifdef __GNUC__ #define FD_SETSIZE (1024) #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define DELIMITER "/" #define min(x,y) (xy?x:y) #define O_BINARY 0 #include #include #include #include #include #include #include #define closesocket close #define winsockerr strerror #define WSAGetLastError() errno #define stricmp strcasecmp #else #define FD_SETSIZE 1024 #include #include #include #include #include #include #include #define DELIMITER "\\" #include #endif #include #include #include #include #include #include #include #include #include #include #include #include int main(); int main(); #ifdef __GNUC__ int main() { int i=1; char *ptr; struct timeval tvstart,tvend; struct timezone tz; double sec,usec; double timework,bytework,bytespersecond,megabytespersecond; while(1) { printf("%12d",i); gettimeofday(&tvstart,&tz); ptr = malloc(i); if (ptr == NULL) { printf("\nmalloc(): %s\n",strerror(errno)); break; } memset(ptr,0,i); free(ptr); gettimeofday(&tvend,&tz); sec = tvend.tv_sec - tvstart.tv_sec; usec = tvend.tv_usec - tvstart.tv_usec; timework = sec + (usec / 1000000) ; bytework = i; bytespersecond = bytework / timework; megabytespersecond = bytespersecond / (1024.0 * 1024.0); printf(" %10.2f MB/sec", megabytespersecond ); printf("\n"); i = i + i; } return 0; } #endif #ifndef __GNUC__ int main() { size_t i=1,old; char *ptr; int start,end; float t,bytesperclock; while(1) { printf("%12u",i); start = clock(); ptr = malloc(i); if (ptr == NULL) { printf("\nmalloc(): #%d. %s\n",errno,strerror(errno)); break; } memset(ptr,0,i); free(ptr); end = clock(); t = (end - start) ; if (t > 0.00) { printf(" %8.2f CLOCKS",t); bytesperclock = i / t; printf(" %8.0f MB/sec",bytesperclock*CLOCKS_PER_SEC/1024.0/1024.0); } printf("\n"); old = i; i = i + i; if (old > i) break; } return 0; } #endif