2

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

任何帮助将不胜感激。

谢谢舒佳

4

1 回答 1

2

一旦获得线程 ID(使用 PAPI_thread_id 或其他函数),就可以使用本文所述的PAPI_attachPAPI_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);
于 2016-12-20T13:41:03.420 回答