getrusage

Linux kernel 2.6.38.7で時間を計測する必要があり、多少調べた

ソースはMANPAGE
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man7/time.7.html

getrusageを使うとtickよりも高い精度で時間測定ができるらしいので使ってみた
結果は以下のようになった

29.998msec
36.664msec
33.331msec
63.329msec
69.995msec

なんか3.3msec毎に飛ばした時間になっている。(しかもこれらの値が何度か出る)

疑問を解決すべく、MANPAGEを見返すとgetrusageの精度はどうやらHZに制限されているらしい
そしてこの値はカーネルのコンフィグファイル中のCONFIG_HZで変更できる
デフォルトでは300に設定されている。1/300は3.3msecであり、上記の結果が約3.3msec毎に飛んでいることと符合している

この値を1000に設定することでより高い精度の結果を出すことができるはず
結果は3.3msecの倍数ではなくなった