From 32c55586766d2c679ffd8d3a25ee6f68a11a7c1b Mon Sep 17 00:00:00 2001 From: Matthew Fredrickson Date: Sat, 29 Sep 2007 00:19:15 +0000 Subject: Let's use process time instead of wall clock time for show translation git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@84115 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/translate.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/main/translate.c b/main/translate.c index c26e627a2..b22a3386d 100644 --- a/main/translate.c +++ b/main/translate.c @@ -30,6 +30,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include #include #include +#include #include #include #include @@ -370,8 +371,8 @@ static void calc_cost(struct ast_translator *t, int seconds) { int sofar=0; struct ast_trans_pvt *pvt; - struct timeval start; - struct timeval end; + struct rusage start; + struct rusage end; int cost; if (!seconds) @@ -389,7 +390,7 @@ static void calc_cost(struct ast_translator *t, int seconds) t->cost = 999999; return; } - start = ast_tvnow(); + getrusage(RUSAGE_SELF, &start); /* Call the encoder until we've processed the required number of samples */ while (sofar < seconds * 8000) { struct ast_frame *f = t->sample(); @@ -406,8 +407,9 @@ static void calc_cost(struct ast_translator *t, int seconds) ast_frfree(f); } } - end = ast_tvnow(); - cost = ((end.tv_sec - start.tv_sec)*1000000) + end.tv_usec - start.tv_usec; + getrusage(RUSAGE_SELF, &end); + cost = ((end.ru_utime.tv_sec - start.ru_utime.tv_sec)*1000000) + end.ru_utime.tv_usec - start.ru_utime.tv_usec; + cost += ((end.ru_stime.tv_sec - start.ru_stime.tv_sec)*1000000) + end.ru_stime.tv_usec - start.ru_stime.tv_usec; destroy(pvt); t->cost = cost / seconds; if (!t->cost) -- cgit v1.2.3