「1msスリープ」にかかる時間を知りたかったのです。
カーネルモジュールでこのクエストを実行しました:
rdtscl(aj);
msleep(1);
rdtscl(b);
printk(KERN_INFO "Difference = %lu", (b-a));// Number of clock cycles consumed
私が得た出力:
Difference = 13479219
cat /proc/cpuinfo の出力
cpu MHz : 1197.000
それで、遅延を計算したところ、11.26 ミリ秒になりました。
約 1 ミリ秒で取得できないのはなぜですか?
アップデート:
cat /proc/cpuinfo のプロセッサ周波数は、次の行から取得する必要があります。
model name : Intel(R) Core(TM) i3 CPU 540 @ 3.07GHz
=> プロセッサの周波数は 3.07 GHz です。ただし、この行「cpu MHz : 1197.000」の意味がわかりません。
ありがとう