Код: Выделить всё
perf_event_attr PerfEvent;
std::memset(&PerfEvent, 0, sizeof(PerfEvent));
PerfEvent.type = PERF_TYPE_HARDWARE;
PerfEvent.disabled = 0;
PerfEvent.pinned = 1;
PerfEvent.inherit = 1;
PerfEvent.config = PERF_COUNT_HW_CPU_CYCLES;
PerfEvent.read_format = PERF_FORMAT_TOTAL_TIME_ENABLED | PERF_FORMAT_TOTAL_TIME_RUNNING;
int fd = syscall(__NR_perf_event_open, &PerfEvent, getpid(), -1, -1, 0);
// Code to profile
uint64_t RetVal[3];
const int32_t rc = read(fd, &RetVal, sizeof(RetVal));
close(fd);
Код: Выделить всё
const bool IsCapabilitySet(int Capability){
if(!cap_valid(Capability)){
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/78743350/performance-counter-not-running-with-perf-open-event[/url]
Мобильная версия