Я запускаю программу C ++ в Linux.
Есть несколько пулов потоков (для вычислений, для io, для … таких вещей).
Системный вызов clock () дает мне возможность измерить время процессора, затраченное всеми ядрами процессора на процесс.
Однако я хочу измерить время процессора, затраченное только потоками в пуле вычислительных потоков.
Как мне этого добиться?
Спасибо
Получить CPU clock ID
каждого потока вы можете использовать: pthread_getcpuclockid
и используя это CPU clock ID
Вы можете получить текущее время процессора потока, используя: clock_gettime.
Ниже приведен пример кода, демонстрирующий то же самое:
struct timespec currTime;
clockid_t threadClockId;
//! Get thread clock Id
pthread_getcpuclockid(pthread_self(), &threadClockId);
//! Using thread clock Id get the clock time
clock_gettime(threadClockId, &currTime);
Других решений пока нет …