プロセスの素晴らしさは (マイクロ) ベンチマークにとって重要ですか? 私の直感では、 でベンチマークを開始すると、ベンチマークでnice -20
発生するコンテキストの切り替えが少なくなるため、より正確な結果が得られると言われています。
一方、多くのツールやライブラリ関数では、壁時間だけでなく CPU 時間も取得できます。さらに、ベンチマーク マシンでは、他のリソースを大量に消費するプロセスを同時に実行するべきではありません。
素朴なアプローチとして、さまざまなナイス値でプロセスを開始したときの違いを確認するために、経過時間を測定する簡単なプログラムを作成しました。
#include <stdio.h>
#include <stdint.h>
#include <sys/time.h>
int main() {
struct timeval tval_before, tval_after, tval_result;
gettimeofday(&tval_before, NULL);
int i;
for (i = 0; i < 2000000000; i++) {
}
gettimeofday(&tval_after, NULL);
timersub(&tval_after, &tval_before, &tval_result);
printf("Time elapsed: %ld.%06ld\n", (long int)tval_result.tv_sec, (long int)tval_result.tv_usec);
return 0;
}
ただし、測定時には、nice 値が高い場合と低い場合でプログラムを開始することに一貫した違いはありません。だから私の質問:私のベンチマークはナイスネスの影響を受けるプロパティを行使しないのですか、それともナイスネスはこのベンチマークには関係ありませんか? ナイスネスの値はベンチマーク マシンに関連していますか? さらに、perf stats
context-switches
指標は快適さの影響を測定するのに適していますか?