使用papi监控运行过程的性能计数器

时间:2016-10-24 15:55:13

标签: papi

如何使用PAPI监控已经运行的进程的硬件计数器?

任何帮助都将受到高度赞赏。

由于 舒亚

1 个答案:

答案 0 :(得分:1)

获取线程ID后(使用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(&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);