Changeset 52150679808ed6ea37f1eb4c564756a1894e43d6

Show
Ignore:
Timestamp:
04/21/08 03:45:10 (9 months ago)
Author:
krayouva <krayouva@…>
Parents:
6ea76e69a6cae35e697e95d0aaa18c8ad62a0193
Children:
3e94658359c07330b5ea11ae8520fd41e676bba5
git-committer:
krayouva <krayouva@gmail.com> / 2008-04-20T13:45:10Z-0400
Message:

* Replaced times with getursage

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • c/benchmark/benchmark.c

    r6ea76e r521506  
    1 #include <sys/times.h> 
    21#include <sys/time.h> 
     2#include <sys/resource.h> 
    33#include <unistd.h> 
    4 #include <limits.h> 
    54#include <string.h> 
    65#include "global.h" 
     
    87#include "all_benchmarks.h" 
    98#include "word_list.h" 
    10  
    11 static int hertz; 
    129 
    1310static int bmtcmp(const void *p1, const void *p2) 
     
    6057} 
    6158 
     59#define TVAL_TO_SEC(before, after) \ 
     60  ((double)after.tv_sec  + ((double)after.tv_usec/1000000)) - \ 
     61  ((double)before.tv_sec + ((double)before.tv_usec/1000000)) 
     62 
    6263static void bm_single_run(BenchMarkUnit *unit, BenchMarkTimes *bm_times) 
    6364{ 
    6465    struct timeval tv_before, tv_after; 
    65     struct tms tms_before, tms_after; 
    66     double before, after; 
     66    struct rusage ru_before, ru_after; 
    6767 
    6868    if (gettimeofday(&tv_before, NULL) == -1) 
    6969        RAISE(FRT_UNSUPPORTED_ERROR, "gettimeofday failed\n"); 
    70     (void)times(&tms_before); 
     70    getrusage(RUSAGE_SELF, &ru_before); 
    7171 
    7272    unit->run(); 
     
    7474    if (gettimeofday(&tv_after, NULL) == -1) 
    7575        RAISE(FRT_UNSUPPORTED_ERROR, "gettimeofday failed\n"); 
    76     (void)times(&tms_after); 
    77     before = (double)tv_before.tv_sec + ((double)tv_before.tv_usec/1000000); 
    78     after = (double)tv_after.tv_sec + ((double)tv_after.tv_usec/1000000); 
    79     bm_times->rtime = after - before; 
    80     bm_times->utime = 
    81         ((double)(tms_after.tms_utime - tms_before.tms_utime))/hertz; 
    82     bm_times->stime = 
    83         ((double)(tms_after.tms_stime - tms_before.tms_stime))/hertz; 
     76    getrusage(RUSAGE_SELF, &ru_after); 
     77 
     78    bm_times->rtime = TVAL_TO_SEC(tv_before, tv_after); 
     79    bm_times->utime = TVAL_TO_SEC(ru_before.ru_utime, ru_after.ru_utime); 
     80    bm_times->stime = TVAL_TO_SEC(ru_before.ru_stime, ru_after.ru_stime); 
    8481} 
    8582 
     
    159156    (void)argc; (void)argv; 
    160157    benchmark.head = benchmark.tail = NULL; 
    161     /* set the clock speed used for calculating run times */ 
    162     hertz = sysconf(_SC_CLK_TCK); 
    163158 
    164159    for (i = 0; i < NELEMS(all_benchmarks); i++) {