Отслеживайте счетчики производительности запущенного процесса с помощью papi

#papi

#папи

Вопрос:

Как я могу отслеживать аппаратные счетчики уже запущенного процесса с помощью PAPI?

Любая помощь будет высоко оценена.

Спасибо , Шуджа

Комментарии:

1. Попробуй это icl.cs.utk.edu/papi

Ответ №1:

Как только вы получите идентификатор потока (используя PAPI_thread_id или другие функции), вы можете использовать функции-оболочки PAPI_attach и PAPI_detach, как описано в этой статье:

http://icl.cs.utk.edu/projects/papi/wiki/PAPI3:PAPI_attach.3

Например:

 int EventSet = PAPI_NULL;
unsigned long pid;
pid = fork();
if (pid <= 0)
exit(1);
if (PAPI_create_eventset(amp;EventSet) != PAPI_OK)
exit(1);
/* Add Total Instructions Executed to our EventSet */
if (PAPI_add_event(EventSet, PAPI_TOT_INS) != PAPI_OK)
exit(1);
/* Attach this EventSet to the forked process */
if (PAPI_attach(EventSet, pid) != PAPI_OK)
exit(1);