41,9 → 41,9 |
/* |
* Node count must be more then 1000! |
*/ |
#define NODE_COUNT 100000 |
#define NODE_COUNT 1000000 |
#define GEN_NUM 275604541 |
#define OPERATION_COUNT 1000000 |
#define OPERATION_COUNT 100000000 |
#define TEST_COUNT 3 |
|
static unsigned int node_count[TEST_COUNT] = {100,1000,NODE_COUNT}; |
229,6 → 229,7 |
*/ |
static void test1(void) |
{ |
ipl_t ipl; |
uint64_t s[3][TEST_COUNT],f[3][TEST_COUNT]; |
uint64_t ds[3][TEST_COUNT],df[3][TEST_COUNT]; |
unsigned int i,ii; |
246,6 → 247,7 |
/* |
* AVL INSERT |
*/ |
ipl = interrupts_disable(); |
s[0][ii] = get_cycle(); |
|
avltree_create(&avltree); |
254,9 → 256,11 |
} |
|
f[0][ii] = get_cycle(); |
interrupts_restore(ipl); |
/* |
* AVL DELETE |
*/ |
ipl = interrupts_disable(); |
ds[0][ii] = get_cycle(); |
|
while ((a = avltree.root) != NULL) { |
265,10 → 269,12 |
} |
|
df[0][ii] = get_cycle(); |
interrupts_restore(ipl); |
|
/* |
* ExtAVL INSERT |
*/ |
ipl = interrupts_disable(); |
s[1][ii] = get_cycle(); |
|
extavltree_create(&extavltree); |
277,9 → 283,11 |
} |
|
f[1][ii] = get_cycle(); |
interrupts_restore(ipl); |
/* |
* ExtAVL DELETE |
*/ |
ipl = interrupts_disable(); |
ds[1][ii] = get_cycle(); |
|
while ((b = extavltree.root) != NULL) { |
288,10 → 296,12 |
} |
|
df[1][ii] = get_cycle(); |
interrupts_restore(ipl); |
|
/* |
* ExtAVLrel INSERT |
*/ |
ipl = interrupts_disable(); |
s[2][ii] = get_cycle(); |
|
extavlreltree_create(&extavlreltree); |
300,9 → 310,11 |
} |
|
f[2][ii] = get_cycle(); |
interrupts_restore(ipl); |
/* |
* ExtAVLrel DELETE |
*/ |
ipl = interrupts_disable(); |
ds[2][ii] = get_cycle(); |
|
while ((c = extavlreltree.root) != NULL) { |
311,6 → 323,7 |
} |
|
df[2][ii] = get_cycle(); |
interrupts_restore(ipl); |
} |
printf("\n----------------------------------------------------------------------------"); |
printf("\nAVL\t\t"); |
346,6 → 359,7 |
*/ |
static void test2(void) |
{ |
ipl_t ipl; |
uint64_t s[3][TEST_COUNT],f[3][TEST_COUNT]; |
uint64_t ds[3][TEST_COUNT],df[3][TEST_COUNT]; |
unsigned int i,ii; |
363,6 → 377,7 |
/* |
* AVL INSERT |
*/ |
ipl = interrupts_disable(); |
s[0][ii] = get_cycle(); |
|
avltree_create(&avltree); |
371,9 → 386,11 |
} |
|
f[0][ii] = get_cycle(); |
interrupts_restore(ipl); |
/* |
* AVL DELETE |
*/ |
ipl = interrupts_disable(); |
ds[0][ii] = get_cycle(); |
|
while (avltree.root != NULL) { |
383,10 → 400,12 |
} |
|
df[0][ii] = get_cycle(); |
interrupts_restore(ipl); |
|
/* |
* ExtAVL INSERT |
*/ |
ipl = interrupts_disable(); |
s[1][ii] = get_cycle(); |
|
extavltree_create(&extavltree); |
395,9 → 414,11 |
} |
|
f[1][ii] = get_cycle(); |
interrupts_restore(ipl); |
/* |
* ExtAVL DELETE |
*/ |
ipl = interrupts_disable(); |
ds[1][ii] = get_cycle(); |
|
while (extavltree.root != NULL) { |
407,9 → 428,11 |
} |
|
df[1][ii] = get_cycle(); |
interrupts_restore(ipl); |
/* |
* ExtAVLrel INSERT |
*/ |
ipl = interrupts_disable(); |
s[2][ii] = get_cycle(); |
|
extavlreltree_create(&extavlreltree); |
418,9 → 441,11 |
} |
|
f[2][ii] = get_cycle(); |
interrupts_restore(ipl); |
/* |
* ExtAVLrel DELETE |
*/ |
ipl = interrupts_disable(); |
ds[2][ii] = get_cycle(); |
|
while (extavlreltree.root != NULL) { |
430,6 → 455,7 |
} |
|
df[2][ii] = get_cycle(); |
interrupts_restore(ipl); |
} |
printf("\n----------------------------------------------------------------------------"); |
printf("\nAVL\t\t"); |
465,6 → 491,7 |
*/ |
static void test3(void) |
{ |
ipl_t ipl; |
uint64_t s[3][TEST_COUNT],f[3][TEST_COUNT]; |
uint64_t ds[3][TEST_COUNT],df[3][TEST_COUNT]; |
unsigned int i,ii; |
482,6 → 509,7 |
/* |
* AVL INSERT |
*/ |
ipl = interrupts_disable(); |
s[0][ii] = get_cycle(); |
|
avltree_create(&avltree); |
490,9 → 518,11 |
} |
|
f[0][ii] = get_cycle(); |
interrupts_restore(ipl); |
/* |
* AVL DELETE |
*/ |
ipl = interrupts_disable(); |
ds[0][ii] = get_cycle(); |
|
while (avltree.root != NULL) { |
502,10 → 532,12 |
} |
|
df[0][ii] = get_cycle(); |
interrupts_restore(ipl); |
|
/* |
* ExtAVL INSERT |
*/ |
ipl = interrupts_disable(); |
s[1][ii] = get_cycle(); |
|
extavltree_create(&extavltree); |
514,9 → 546,11 |
} |
|
f[1][ii] = get_cycle(); |
interrupts_restore(ipl); |
/* |
* ExtAVL DELETE |
*/ |
ipl = interrupts_disable(); |
ds[1][ii] = get_cycle(); |
|
while (extavltree.root != NULL) { |
526,9 → 560,11 |
} |
|
df[1][ii] = get_cycle(); |
interrupts_restore(ipl); |
/* |
* ExtAVLrel INSERT |
*/ |
ipl = interrupts_disable(); |
s[2][ii] = get_cycle(); |
|
extavlreltree_create(&extavlreltree); |
537,9 → 573,11 |
} |
|
f[2][ii] = get_cycle(); |
interrupts_restore(ipl); |
/* |
* ExtAVLrel DELETE |
*/ |
ipl = interrupts_disable(); |
ds[2][ii] = get_cycle(); |
|
while (extavlreltree.root != NULL) { |
549,6 → 587,7 |
} |
|
df[2][ii] = get_cycle(); |
interrupts_restore(ipl); |
} |
printf("\n----------------------------------------------------------------------------"); |
printf("\nAVL\t\t"); |
584,6 → 623,7 |
*/ |
static void test4(void) |
{ |
ipl_t ipl; |
uint64_t s[3][TEST_COUNT],f[3][TEST_COUNT]; |
unsigned int i,ii; |
avltree_node_t *a; |
607,6 → 647,7 |
*/ |
rr = r; |
nc = 0; |
ipl = interrupts_disable(); |
s[0][ii] = get_cycle(); |
|
avltree_create(&avltree); |
640,6 → 681,7 |
} |
|
f[0][ii] = get_cycle(); |
interrupts_restore(ipl); |
|
/* |
* ExtAVL |
646,6 → 688,7 |
*/ |
rr = r; |
nc = 0; |
ipl = interrupts_disable(); |
s[1][ii] = get_cycle(); |
|
extavltree_create(&extavltree); |
679,6 → 722,7 |
} |
|
f[1][ii] = get_cycle(); |
interrupts_restore(ipl); |
|
/* |
* ExtAVLrel |
685,6 → 729,7 |
*/ |
rr = r; |
nc = 0; |
ipl = interrupts_disable(); |
s[2][ii] = get_cycle(); |
|
extavlreltree_create(&extavlreltree); |
720,6 → 765,7 |
} |
|
f[2][ii] = get_cycle(); |
interrupts_restore(ipl); |
} |
printf("\n----------------------------------------------------------------------------"); |
printf("\nAVL\t\t"); |
749,9 → 795,11 |
return NULL; |
|
/* |
* Disable interrupts, |
* store initial cycle count, |
* do test, |
* store finish cycle count, |
* enable interrupts, |
* show results |
*/ |
|