pr_cpu_time.c 767 B

123456789101112131415161718192021222324252627282930
  1. #include "unp.h"
  2. #include <sys/resource.h>
  3. #ifndef HAVE_GETRUSAGE_PROTO
  4. int getrusage(int, struct rusage *);
  5. #endif
  6. void
  7. pr_cpu_time(void)
  8. {
  9. double user, sys;
  10. struct rusage myusage, childusage;
  11. if (getrusage(RUSAGE_SELF, &myusage) < 0)
  12. err_sys("getrusage error");
  13. if (getrusage(RUSAGE_CHILDREN, &childusage) < 0)
  14. err_sys("getrusage error");
  15. user = (double) myusage.ru_utime.tv_sec +
  16. myusage.ru_utime.tv_usec/1000000.0;
  17. user += (double) childusage.ru_utime.tv_sec +
  18. childusage.ru_utime.tv_usec/1000000.0;
  19. sys = (double) myusage.ru_stime.tv_sec +
  20. myusage.ru_stime.tv_usec/1000000.0;
  21. sys += (double) childusage.ru_stime.tv_sec +
  22. childusage.ru_stime.tv_usec/1000000.0;
  23. printf("\nuser time = %g, sys time = %g\n", user, sys);
  24. }