title: perf : CPUの分岐予測の失敗、キャッシュミスをカウントするプロファイラ
、Linux用
url:
http://research.preferred.jp/2012/06/centroid-path-decomposition/
snippet:
-----引用-----
perfは最近の
CPUの機能がいろいろ使えるようになっているすごい
プロファイラです。ビルドしなおしたりせずに使えるので、お手軽簡単でもあります。
Linuxを使っているのであれば一度試しておく価値があるでしょう。Debian/Ubuntuであればapt-get install linux-toolsでインストールできます。
例:
1,006,797,327 cache-references
672,031,146
cache-misses # 66.749 % of all cache refs
15,364,571,222 branch-instructions
389,161,442
branch-misses # 2.53% of all branches
67,849,694,976
instructions # 0.59 insns per cycle
114,053,128,530 cycles # 0.000 GHz
IPC(
1クロックあたりの実行命令数、insns per cycleのところの数値です)
IPCの向上を阻害する要因は(おそらく)たくさんありますが、
分岐予測の失敗、メモリもしくはIOなど遅いデバイスへのアクセス、の2つが大きな原因となり得るでしょう。上記の例では分岐予測の失敗は2.5%程度、
キャッシュミスの割合は67%程度です。
-----引用-----