summaryrefslogtreecommitdiff
path: root/example/counting.cc
blob: a2af7f9d45e31521725329778aca2144991f8f38 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <linux/perf_event.h>
#include "perf.hpp"

int main() {
  perf_group pg({
      {.name   = "CPUCLK",
       .type   = PERF_TYPE_SOFTWARE,
       .config = PERF_COUNT_SW_CPU_CLOCK},
      {.name   = "TASK",
       .type   = PERF_TYPE_SOFTWARE,
       .config = PERF_COUNT_SW_TASK_CLOCK},
      {.name   = "INSN",
       .type   = PERF_TYPE_HARDWARE,
       .config = PERF_COUNT_HW_INSTRUCTIONS},
  });
  pg.start();
  asm volatile("nop");
  asm volatile("nop");
  pg.stop();
  pg.dump();
}