0

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 性能?

4

0 回答 0