/* ** avl_bench.c - simple index benchmark for avltree */ #include #include #include "avltree.h" /* ** key generation */ static char *key = NULL; static int keylen = 0, seeded = 0; char * keygen(int n, int seed) { int i, len; if (seed) { srandom((unsigned)seed); seeded++; } if (!seeded) { srandom(1); seeded++; } if (n > keylen) { if (keylen) free(key); keylen = n; key = malloc(keylen+1); } len = random() % n; while (len == 0) len = random() % n; for (i=0; ikey, keygen(20, 0)); if (avl_add_key(pe, &ix) != AVL_IX_OK) { fprintf(stderr, "avl_add_key(%s)\n", pe->key); exit(1); } } /* look up all keys */ keyreset(); for (i=0; ikey, keygen(20, 0)); if (avl_find_key(pe, &ix) != AVL_IX_OK) { fprintf(stderr, "avl_add_key(%s)\n", pe->key); exit(1); } } exit(0); }