Mercurial > libjeffpc
changeset 510:31b113cb0259
tree: add support for perf testing red-black trees
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author | Josef 'Jeff' Sipek <jeffpc@josefsipek.net> |
---|---|
date | Wed, 25 Jul 2018 13:57:08 -0400 |
parents | 7e85476c5cfe |
children | 7e39b3094a5f |
files | tests/perf_tree.c |
diffstat | 1 files changed, 20 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/perf_tree.c Wed Jul 25 13:57:41 2018 -0400 +++ b/tests/perf_tree.c Wed Jul 25 13:57:08 2018 -0400 @@ -23,14 +23,21 @@ #include <jeffpc/jeffpc.h> #include <jeffpc/error.h> #include <jeffpc/bst.h> +#include <jeffpc/rbtree.h> #include <jeffpc/rand.h> #include <jeffpc/time.h> -#define NITERS 100000 +#define NITERS 1000000 #define PERF_TREE_BST #if defined(PERF_TREE_BST) +/* + * Use fewer iterations to avoid pathological behavior with sequential + * insertions taking O(n^2) with a large n. + */ +#undef NITERS +#define NITERS 100000 #define TREE_TREE bst_tree #define TREE_NODE bst_node #define TREE_COOKIE bst_cookie @@ -42,6 +49,18 @@ #define TREE_FOR_EACH bst_for_each #define TREE_NUMNODES bst_numnodes #define TREE_DESTROY_NODES bst_destroy_nodes +#elif defined(PERF_TREE_RB) +#define TREE_TREE rb_tree +#define TREE_NODE rb_node +#define TREE_COOKIE rb_cookie +#define TREE_CREATE rb_create +#define TREE_DESTROY rb_destroy +#define TREE_FIND rb_find +#define TREE_INSERT rb_insert +#define TREE_REMOVE rb_remove +#define TREE_FOR_EACH rb_for_each +#define TREE_NUMNODES rb_numnodes +#define TREE_DESTROY_NODES rb_destroy_nodes #else #error "Unspecified test type" #endif