From 5361c6550460d3db6da94619fbb7f3b23be37f30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Esnard?= <aurelien.esnard@u-bordeaux.fr> Date: Thu, 30 Nov 2017 15:27:53 +0100 Subject: [PATCH] add #time tag --- src/all/basic/basic.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/all/basic/basic.c b/src/all/basic/basic.c index ab86fbd9..1df6c493 100644 --- a/src/all/basic/basic.c +++ b/src/all/basic/basic.c @@ -402,7 +402,10 @@ void StarPart_DIAG_call(StarPart_Context * ctx, char * method) Graph * g = StarPart_getGraph(data, "graph"); // printf("StarPart diagnostic for data \"%s\"\n", StarPart_getCurrentDataID(ctx)); printGraphDiagnostic(g, nparts, part); - // printf(" - execution time = %lf (in ms)\n", data->exectime); + if(StarPart_isItem(data, "exectime")) { + double exectime = StarPart_getDouble(data, "exectime"); + printf(" - execution time = %lf (in ms)\n", exectime); + } } /* *********************************************************** */ @@ -867,11 +870,11 @@ void StarPart_STORE_post(StarPart_Context * ctx, char* method, char* key, char* void StarPart_TIME_pre(StarPart_Context * ctx, char* method, char* key, char* value) { /* start timer */ - // StarPart_Data * data = StarPart_getCurrentMethodArgument(ctx, "data"); - // struct timeval start; gettimeofday(&start, NULL); - // double exectime = (start.tv_sec*1000.0*1000.0 + start.tv_usec) / 1000.0; // in ms - // if(!StarPart_isItem(data, "exectime")) - // StarPart_addNewItem(data, "exectime", STARPART_GLOBAL, STARPART_DOUBLE, NEW_DOUBLE(exectime), true); + StarPart_Data * data = StarPart_getCurrentMethodArgument(ctx, "data"); + struct timeval start; gettimeofday(&start, NULL); + double exectime = (start.tv_sec*1000.0*1000.0 + start.tv_usec) / 1000.0; // in ms + if(!StarPart_isItem(data, "exectime")) + StarPart_addNewItem(data, "exectime", STARPART_INOUT, STARPART_DOUBLE, NEW_DOUBLE(exectime), STARPART_GLOBAL, true); } /* *********************************************************** */ @@ -879,10 +882,11 @@ void StarPart_TIME_pre(StarPart_Context * ctx, char* method, char* key, char* va void StarPart_TIME_post(StarPart_Context * ctx, char* method, char* key, char* value) { /* stop timer */ - // struct timeval stop; gettimeofday(&stop, NULL); - // double exectime = (stop.tv_sec*1000.0*1000.0 + stop.tv_usec) / 1000.0; // in ms - // double _exectime = StarPart_getItemDouble(data, "exectime"); - // StarPart_setItemDouble(data, "exectime", exectime - _exectime); + struct timeval stop; gettimeofday(&stop, NULL); + double exectime = (stop.tv_sec*1000.0*1000.0 + stop.tv_usec) / 1000.0; // in ms + StarPart_Data * data = StarPart_getCurrentMethodArgument(ctx, "data"); + double _exectime = StarPart_getDouble(data, "exectime"); + StarPart_setDouble(data, "exectime", exectime - _exectime); } /* *********************************************************** */ -- GitLab