さまざまなデータベース システムでいくつかのローカル実験を行っています。/proc/status
クエリを実行する前後のCPU 情報を収集 (集計)します。違いは、クエリ実行中の jiffy または USER_HZ の量を教えてくれるはずです。しかし、( によるとclock_gettime()
) クエリのランタイムが より下のどこかにある場合、違いはゼロ0.001 seconds
です。これは CPU 情報を利用するには速すぎますか、それとも他に何か不足していますか?
質問する
685 次
1 に答える
1
Linuxカーネル2.6.0の時点で、jiffyは1/250秒、つまり0.004秒です[ time(7)を参照]。それよりも小さい解像度が得られることはありません。
rdtsc
コンパイラ組み込み関数として利用できる可能性が高い命令を使用することをお勧めします。これは1CPUティックごとに増分されるため、頻度で割ることにより、経過した時間を取得できます。インラインアセンブリを使用して実装することもできます。
/proc/status
ファイル記述子を開いて内容を読み取るのに、クエリの実行よりも実際に時間がかかる可能性が高いため、実際にチェックするのは少しばかげています。rdtsc
はるかに信頼性があります。
于 2012-05-01T02:44:45.457 に答える