74 lines
2.3 KiB
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;
|
|
}
|