getrusage
Форум — Development
Хочется узнать, сколько процесс потратил процессорного времени за свое выполнение. Пока балюусь так: #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..