如何解决PAPI 似乎附加到其进程
PAPI 似乎只衡量自己进程的性能,例如
#include <papi.h>
int main()
{
PAPI_library_init(PAPI_VER_CURRENT);
int eventset = PAPI_NULL;
PAPI_create_eventset(&eventset);
PAPI_add_named_event(eventset,"PAPI_TOT_CYC");
PAPI_reset(eventset);
long long count;
PAPI_start(eventset);
some_work();
PAPI_stop(eventset,&count);
std::cout << "PAPI: measured " << count << " cycles" << std::endl;
return 0;
}
此处 PAPI 测量 some_work()
进行的循环量。
但是如果我想测量整个 CPU 产生的周期数,而上面的 some_work()
被 sleep(1)
代替怎么办?
如果我运行一个 CPU hog 进程,它只会在很小的程度上改变 count
,而向 some_work()
添加工作会产生很大的影响。
如何让 PAPI 衡量整个 CPU 性能?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。