X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c102403bfd59375027b5865880814bd2257531c0..763a261066247a3639a8162d1e4d5a015f9654a5:/testsuite/xbt/heap_bench.c?ds=sidebyside diff --git a/testsuite/xbt/heap_bench.c b/testsuite/xbt/heap_bench.c index b3706d7fac..b13d065101 100644 --- a/testsuite/xbt/heap_bench.c +++ b/testsuite/xbt/heap_bench.c @@ -7,18 +7,30 @@ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ +#ifdef __BORLANDC__ +#pragma hdrstop +#endif + #include #include +#include #include "xbt/heap.h" -#include "gras/virtu.h" /* time manipulation in bench */ +#include "gras/virtu.h" /* time manipulation in bench */ + +#include "xbt/sysdep.h" /* calloc, printf */ #define MAX_TEST 1000000 +#ifdef __BORLANDC__ +int _XBT_CALL compare_double(const void *a, const void *b); +#else int compare_double(const void *a, const void *b); +#endif + void test_heap_validity(int size); void test_heap_mean_operation(int size); -void test_reset_heap(xbt_heap_t heap,int size); +void test_reset_heap(xbt_heap_t heap, int size); int compare_double(const void *a, const void *b) @@ -38,12 +50,13 @@ int compare_double(const void *a, const void *b) void test_heap_validity(int size) { xbt_heap_t heap = xbt_heap_new(size, NULL); - double *tab = calloc(size, sizeof(double)); + double *tab = xbt_new0(double, size); + int i; for (i = 0; i < size; i++) { - tab[i] = (10.0 * rand() / (RAND_MAX + 1.0)); - xbt_heap_push(heap, NULL, tab[i]); + tab[i] = (double) (10.0 * rand() / (RAND_MAX + 1.0)); + xbt_heap_push(heap, NULL, (double) tab[i]); } qsort(tab, size, sizeof(double), compare_double); @@ -71,38 +84,43 @@ void test_heap_mean_operation(int size) date = gras_os_time() * 1000000; for (i = 0; i < size; i++) xbt_heap_push(heap, NULL, (10.0 * rand() / (RAND_MAX + 1.0))); + date = gras_os_time() * 1000000 - date; printf("Creation time %d size heap : %g\n", size, date); date = gras_os_time() * 1000000; for (j = 0; j < MAX_TEST; j++) { - - if(!(j%size) && j) - test_reset_heap(heap,size); - + + if (!(j % size) && j) + test_reset_heap(heap, size); + val = xbt_heap_maxkey(heap); xbt_heap_pop(heap); xbt_heap_push(heap, NULL, 3.0 * val); } date = gras_os_time() * 1000000 - date; printf("Mean access time for a %d size heap : %g\n", size, - date * 1.0 / (MAX_TEST + 0.0)); + date * 1.0 / (MAX_TEST + 0.0)); xbt_heap_free(heap); } -void test_reset_heap(xbt_heap_t heap,int size) +void test_reset_heap(xbt_heap_t heap, int size) { int i; xbt_heap_free(heap); heap = xbt_heap_new(size, NULL); - for (i = 0; i < size; i++){ + for (i = 0; i < size; i++) { xbt_heap_push(heap, NULL, (10.0 * rand() / (RAND_MAX + 1.0))); } } +#ifdef __BORLANDC__ +#pragma argsused +#endif + int main(int argc, char **argv) { int size;