プロファイリング
http://d.hatena.ne.jp/tazant/20081025/1224930470
プロファイリング手法は幾つかあるが、私が好きなのはランダムサンプリング方式。
準備
- 適当な間隔でタイマー割込するスレッド。
- 実行対象のプログラム。
方式
- 本体スレッドが動く前に割込スレッドを動かす。*1
- 本体スレッドを動かす。
- 割込スレッドが割り込む。本体スレッドでの実行位置を取得して記録する。*2
- 本体スレッドを動かす、割込スレッドが実行位置を取得して記録する、の繰り返し。
解析
- 記録した実行位置がどこの関数に属しているかを調べる。
- サンプリングがランダムなら割込回数が実行時間に比例する。