(unnamed)
text/plain
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
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;
}