perf on Fedora22
perf: Linux profiling with performance counters
Perf Wiki
インストール
$ sudo dnf isntall perf
てきとうなコードを用意
$ gcc fib.c -o fib
イベント数を取得
$ perf stat ./fib 832040 failed to read counter stalled-cycles-frontend failed to read counter stalled-cycles-backend Performance counter stats for './fib': 11.102711 task-clock (msec) # 0.967 CPUs utilized 2 context-switches # 0.180 K/sec 0 cpu-migrations # 0.000 K/sec 48 page-faults # 0.004 M/sec 19,328,246 cycles # 1.741 GHz <not supported> stalled-cycles-frontend <not supported> stalled-cycles-backend 46,303,730 instructions # 2.40 insns per cycle 9,527,011 branches # 858.080 M/sec 5,258 branch-misses # 0.06% of all branches 0.011485366 seconds time elapsed
解析実行
$ perf record ./fib 832040 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.012 MB perf.data (47 samples) ]
解析ファイルが作られる
$ ls -la -rw------- 1 dela dela 14944 Feb 6 11:27 perf.data -rw------- 1 dela dela 47080 Feb 6 11:16 perf.data.old
解析結果を見る
$ perf report Samples: 68 of event 'cycles', Event count (approx.): 20695033 Overhead Command Shared Object Symbol 94.16% fib fib [.] fib 2.22% fib [kernel.kallsyms] [k] _raw_spin_lock 1.54% fib [kernel.kallsyms] [k] filemap_map_pages 1.49% fib [kernel.kallsyms] [k] async_page_fault 0.27% fib [kernel.kallsyms] [k] bad_range 0.17% fib [kernel.kallsyms] [k] run_timer_softirq 0.08% fib [kernel.kallsyms] [k] __remove_hrtimer 0.06% fib [kernel.kallsyms] [k] native_write_msr_safe