timesynk/test/table_test.c

74 lines
2.3 KiB
C

#include <sys/time.h>
#include "../data.h"
int main() {
int i, j = 0;
printf("creating 200 tables, each with 10 entries stored in 16...\n");
struct timeval start_tv;
gettimeofday(&start_tv, NULL);
double start_ms = (start_tv.tv_sec) * 1000 + (start_tv.tv_usec) / 1000;
struct Table **tables = malloc(sizeof(struct Table*)*200);
for (i=0;i<200;i++) {
// printf("table %d\n", i);
struct Table *table = newTable(16);
tables[i] = table;
for (j=0;j<10;j++) {
// printf(" entry %d\n", j);
char string[4];
string[0] = (char)65+((i*j)%15);
string[1] = (char)65+(((i*j)+5)%15);
string[2] = (char)65+(((i*j)+15)%15);
string[3] = (char)65+(((i*j)+65)%15);
string[4] = '\0';
addTablePair(table, string, string, 5*sizeof(char), T_STRING);
// printf(" %s(%d)=>%s\n", string, getTableIndex(table, string), getTablePairValue(table, string));
}
}
struct timeval end_tv;
gettimeofday(&end_tv, NULL);
double end_ms = (end_tv.tv_sec) * 1000 + (end_tv.tv_usec) / 1000;
printf("done in %d(%fms)\n", end_tv.tv_sec-start_tv.tv_sec, end_ms-start_ms);
printf("now retrieving...\n");
gettimeofday(&start_tv, NULL);
start_ms = (start_tv.tv_sec) * 1000 + (start_tv.tv_usec) / 1000;
for (i=0;i<200;i++) {
/* j = 0;
while (j < tables[i]->size) {
struct TablePair *table_pair = tables[i]->pair[j];
while (table_pair != NULL) {
// if (table_pair->type == T_STRING)
// printf("%s=>%s!\n", table_pair->key, table_pair->value);
table_pair = table_pair->next;
}
j++;
}*/
for (j=0;j<10;j++) {
// printf(" entry %d\n", j);
char string[4];
string[0] = (char)65+((i*j)%15);
string[1] = (char)65+(((i*j)+5)%15);
string[2] = (char)65+(((i*j)+15)%15);
string[3] = (char)65+(((i*j)+65)%15);
string[4] = '\0';
// getTablePair(tables[i], string);
// printf(" %s(%d)=>%s\n", string, getTableIndex(tables[i], string), getTablePairValue(tables[i], string));
int ind = getTableIndex(tables[i], string);
void *value = getTablePairValue(tables[i], string);
}
}
gettimeofday(&end_tv, NULL);
end_ms = (end_tv.tv_sec) * 1000 + (end_tv.tv_usec) / 1000;
printf("done in %d(%fms)\n", end_tv.tv_sec-start_tv.tv_sec, end_ms-start_ms);
return 0;
}