1

过程的好坏对(微)基准测试很重要吗?我的直觉是,开始基准测试nice -20会产生更精确的结果,因为基准测试发生的上下文切换更少。

另一方面,许多工具或库函数不仅允许检索墙上时间,还允许检索 CPU 时间。此外,基准机器不应同时运行其他资源密集型进程,因此无论如何不会有太多竞争。

作为一种天真的方法,我编写了一个简单的程序来测量 wall-time,希望在使用不同的 niceness 值开始该过程时看到差异:

#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 值启动程序并没有一致的差异。所以我的问题是:我的基准是否不行使受好感影响的属性,或者好感与该基准无关?niceness 值是否与基准机器相关?此外:这些perf stats context-switches指标是否适合衡量友善的影响?

4

0 回答 0