Я пытаюсь рассчитать среднее время процессора определенного потока, используя rusage.
однако я получаю, что «RUSAGE_THREAD» не был объявлен в этой области.
Я использую
#include <sys/resource.h>
и компиляция с -D_GNU_SOURCE
в начале моего кода, и моя версия Linux в порядке.
здесь я пытаюсь сделать расчет:
struct rusage l_rusage;
int retVal = getrusage(RUSAGE_THREAD, &l_rusage);
u64 userUSeconds = (static_cast<u64>(l_rusage.ru_utime.tv_sec)) * 1000000 +
(static_cast<u64>(l_rusage.ru_utime.tv_usec));
u64 systemUSeconds = (static_cast<u64>(l_rusage.ru_stime.tv_sec)) * 1000000 +
(static_cast<u64>(l_rusage.ru_stime.tv_usec));
return (userUSeconds + systemUSeconds) / ACE_OS::num_processors_online();
Любые идеи? или, может быть, даже другое решение? я также использую библиотеки ACE, поэтому у меня есть ACE_OS, но я не смог найти эквивалент для RUSAGE_THREAD при попытке использовать ACE_OS::rusage.
Спасибо
РЕДАКТИРОВАТЬ: Еще одна вещь: я не могу получить доступ к тому, где на самом деле находится код создания потока, я могу использовать код только из потока.