X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/099ae62433e5e13777b38086a9a78a5b758fde71..4f4b0231de4cb669c51a9bebb889cde3e4bb63e4:/testsuite/surf/maxmin_bench.c diff --git a/testsuite/surf/maxmin_bench.c b/testsuite/surf/maxmin_bench.c index d44f506522..149f273555 100644 --- a/testsuite/surf/maxmin_bench.c +++ b/testsuite/surf/maxmin_bench.c @@ -1,17 +1,21 @@ -/* $Id$ */ - /* A crash few tests for the maxmin library */ -/* Copyright (c) 2004 Arnaud Legrand. All rights reserved. */ +/* Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009, 2010. The SimGrid Team. + * All rights reserved. */ /* 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 "xbt/xbt_portability.h" #include "surf/maxmin.h" -#include "xbt/sysdep.h" /* time manipulation for benchmarking */ +#include "xbt/xbt_os_time.h" +#include "xbt/sysdep.h" /* time manipulation for benchmarking */ double date; @@ -31,9 +35,9 @@ void test(int nb_cnst, int nb_var, int nb_elem); void test(int nb_cnst, int nb_var, int nb_elem) { lmm_system_t Sys = NULL; - lmm_constraint_t *cnst = calloc(nb_cnst, sizeof(lmm_constraint_t)); - lmm_variable_t *var = calloc(nb_var, sizeof(lmm_variable_t)); - int *used = calloc(nb_cnst, sizeof(int)); + lmm_constraint_t *cnst = xbt_new0(lmm_constraint_t, nb_cnst); + lmm_variable_t *var = xbt_new0(lmm_variable_t, nb_var); + int *used = xbt_new0(int, nb_cnst); int i, j, k; Sys = lmm_system_new(); @@ -49,34 +53,41 @@ void test(int nb_cnst, int nb_var, int nb_elem) for (j = 0; j < nb_elem; j++) { k = int_random(nb_cnst); if (used[k]) { - j--; - continue; + j--; + continue; } lmm_expand(Sys, cnst[k], var[i], float_random(1.0)); used[k] = 1; } } + printf("Starting to solve\n"); date = xbt_os_time() * 1000000; lmm_solve(Sys); date = xbt_os_time() * 1000000 - date; + for (i = 0; i < nb_var; i++) + lmm_variable_free(Sys, var[i]); lmm_system_free(Sys); free(cnst); free(var); free(used); } +#ifdef __BORLANDC__ +#pragma argsused +#endif + int main(int argc, char **argv) { int nb_cnst = 2000; int nb_var = 2000; - int nb_elem = 20; + int nb_elem = 80; date = xbt_os_time() * 1000000; test(nb_cnst, nb_var, nb_elem); printf("One shot execution time for a total of %d constraints, " - "%d variables with %d active constraint each : %lg microsecondes \n", - nb_cnst, nb_var, nb_elem, date); + "%d variables with %d active constraint each : %g microsecondes \n", + nb_cnst, nb_var, nb_elem, date); return 0; }