X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/fd472f70823a1157acdca204f02accd97918dccc..d1ddbd23d6d9204fe614bd26a2c064f51f7820b0:/testsuite/surf/maxmin_bench.c diff --git a/testsuite/surf/maxmin_bench.c b/testsuite/surf/maxmin_bench.c index ca70060936..149f273555 100644 --- a/testsuite/surf/maxmin_bench.c +++ b/testsuite/surf/maxmin_bench.c @@ -1,30 +1,26 @@ /* A crash few tests for the maxmin library */ -/* Authors: Arnaud Legrand */ +/* 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. */ + * under the terms of the license (GNU LGPL) which comes with this package. */ + +#ifdef __BORLANDC__ +#pragma hdrstop +#endif + #include #include #include "surf/maxmin.h" -#include - -long date; - -/* Pour le bench */ -long us_time(void); -long us_time(void) -{ - struct timeval start; - gettimeofday(&start, NULL); - - return (start.tv_sec * 1000000 + start.tv_usec); -} +#include "xbt/xbt_os_time.h" +#include "xbt/sysdep.h" /* time manipulation for benchmarking */ +double date; -xbt_maxmin_float_t float_random(xbt_maxmin_float_t max); -xbt_maxmin_float_t float_random(xbt_maxmin_float_t max) +double float_random(double max); +double float_random(double max) { return ((max * rand()) / (RAND_MAX + 1.0)); } @@ -39,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(); @@ -57,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; } } - date = us_time(); + printf("Starting to solve\n"); + date = xbt_os_time() * 1000000; lmm_solve(Sys); - date = us_time() - date; + 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; - date = us_time(); + 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 : %ld 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; }