LINUX.ORG.RU

Сообщения Ubique

 

getrusage

Хочется узнать, сколько процесс потратил процессорного времени за свое выполнение. Пока балюусь так: 

#include <sys/time.h> 
#include <sys/types.h> 
#include <sys/resource.h> 
#include <math.h> 
#include <time.h>

#define MAXCOUNT 10000
int main () { 
  int i, j, count, total;
  struct rusage rsr_usage; 
  clock_t start, end; 
  double cpu_time_used; 
  start = clock();

  total = 0; 
  getrusage(RUSAGE_SELF, &rsr_usage);
  for (i = 2; total <= MAXCOUNT; i++)
      { /*SKIPPED HEAWY WORK*/ } 
  getrusage(RUSAGE_SELF, &rsr_usage); 
  end = clock(); 
  cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
  printf("\tgetrusage %.8f \n", (rsr_usage.ru_stime.tv_sec * 1000) +   (rsr_usage.ru_stime.tv_usec / 1000));
  printf("\tuser time clocks() %.8 f\n", cpu_time_used);
  return 0; 
}

в результате имеем: 
ubique@ubique ~/dev/files $ time ./badscript 
getrusage -0.00000000 
user time clocks() 0.28000000

real 0m0.325s
user 0m0.288s
sys 0m0.000s

Те, когда считаем через clocks, у нас получается верно. А вот с getrusage..

>>>

Ubique
()

RSS подписка на новые темы