diff --git a/make.sh b/make.sh index 856b6da..f257882 100755 --- a/make.sh +++ b/make.sh @@ -50,7 +50,7 @@ else OFF_BITS=32 fi -DEBUG_FLAG=1 +DEBUG_FLAG=0 CFLAGS='-Wall -D_FILE_OFFSET_BITS=64' if [ "$DEBUG_FLAG" = "1" ]; then diff --git a/src/skiplist.c b/src/skiplist.c index 08a32ba..debc650 100644 --- a/src/skiplist.c +++ b/src/skiplist.c @@ -52,7 +52,7 @@ int skiplist_init_ex(Skiplist *sl, const int level_count, for (i=0; imblocks + i, + if ((result=fast_mblock_init_ex(sl->mblocks + i, element_size, alloc_elements_once, NULL, false)) != 0) { return result; @@ -90,11 +90,11 @@ void skiplist_destroy(Skiplist *sl) sl->mblocks = NULL; } -static inline int skiplist_get_previous_level_index(Skiplist *sl) +static inline int skiplist_get_level_index(Skiplist *sl) { int i; - for (i=0; ilevel_count; i++) { + for (i=0; itop_level_index; i++) { if (rand() < RAND_MAX / 2) { break; } @@ -111,7 +111,7 @@ int skiplist_insert(Skiplist *sl, void *data) SkiplistNode *previous; SkiplistNode *current; - level_index = skiplist_get_previous_level_index(sl); + level_index = skiplist_get_level_index(sl); node = (SkiplistNode *)fast_mblock_alloc_object(sl->mblocks + level_index); if (node == NULL) { return ENOMEM; @@ -211,4 +211,3 @@ void *skiplist_find(Skiplist *sl, void *data) return (previous != NULL) ? previous->links[level_index]->data : NULL; } - diff --git a/src/tests/Makefile b/src/tests/Makefile index 14fb3fe..73c875c 100644 --- a/src/tests/Makefile +++ b/src/tests/Makefile @@ -1,6 +1,6 @@ .SUFFIXES: .c .o -COMPILE = $(CC) -Wall -D_FILE_OFFSET_BITS=64 -g -DDEBUG_FLAG +COMPILE = $(CC) -O2 -Wall -D_FILE_OFFSET_BITS=64 -g -DDEBUG_FLAG INC_PATH = -I/usr/include/fastcommon LIB_PATH = -lfastcommon diff --git a/src/tests/test_skiplist.c b/src/tests/test_skiplist.c index b948165..2f6b7db 100644 --- a/src/tests/test_skiplist.c +++ b/src/tests/test_skiplist.c @@ -7,55 +7,47 @@ #include #include #include "skiplist.h" +#include "logger.h" +#include "shared_func.h" + +#define COUNT 1000000 +#define LAST_INDEX (COUNT - 1) + +static int *numbers; +static Skiplist sl; +static SkiplistIterator iterator; static int compare_func(const void *p1, const void *p2) { return *((int *)p1) - *((int *)p2); } -int main(int argc, char *argv[]) +static int test_insert() { -#define COUNT 1280 -#define LAST_INDEX (COUNT - 1) - - Skiplist sl; - SkiplistIterator iterator; - int *numbers; int i; - int tmp; - int index; int result; void *value; + int64_t start_time; + int64_t end_time; - numbers = (int *)malloc(sizeof(int) * COUNT); - srand(time(NULL)); - for (i=0; i