#include #include #include typedef struct RelFileNode { unsigned int spc; unsigned int db; unsigned int rel; } RelFileNode; typedef struct Buffer { RelFileNode rnode; } Buffer; //#define NBUFFERS ((int)((128.0 * 1024 * 1024 * 1024) / (8.0 * 1024))) #define NBUFFERS ((int)((32.0 * 1024 * 1024 * 1024) / (8.0 * 1024))) int main(void) { int i; RelFileNode t = {1,2,3}; Buffer *bufs = (Buffer *) malloc(sizeof(Buffer) * NBUFFERS); struct timeval st, ed; int matches = 0, unmatches = 0; Buffer *b; for (i = 0 ; i < NBUFFERS ; i++) { bufs[i].rnode.spc = random() * 100; bufs[i].rnode.db = random() * 100; bufs[i].rnode.rel = random() * 10000; } /* start measuring */ gettimeofday(&st, NULL); b = bufs; for (i = 0 ; i < NBUFFERS ; i++) { if (b->rnode.spc == t.spc && b->rnode.db == t.db && b->rnode.rel == t.rel) matches++; else unmatches++; b++; } gettimeofday(&ed, NULL); printf("%lf ms for %d loops, matches %d, unmatches %d\n", (double)((ed.tv_sec - st.tv_sec) * 1000.0 + (ed.tv_usec - st.tv_usec) / 1000.0), i, matches, unmatches); return 0; }