time对于运行一秒钟的基准测试,它可以产生足够好的时间,否则,
exec()与运行时间相比,该过程花费的时间可能会很大。
但是,在进行基准测试时,应注意上下文切换。也就是说,另一个进程可能正在使用CPU,因此与基准测试竞争CPU并增加了其运行时间。为了避免与其他进程争用,您应该运行如下基准:
sudo chrt -f 99 /usr/bin/time --verbose <benchmark>
要么
sudo chrt -f 99 perf stat -ddd <benchmark>
sudo chrt -f99以优先级99在FIFO实时类中运行基准,这使您的进程成为最高优先级的进程,并避免了上下文切换(您可以进行更改,
/etc/security/limits.conf以便不需要特权进程即可使用实时优先级)。
它还可以
time报告所有可用的统计信息,包括基准测试发生的上下文切换次数,通常应为0,否则您可能需要重新运行基准测试。
perf stat -ddd比提供更多信息,
/usr/bin/time并显示诸如每周期指令,分支和高速缓存未命中等信息。
最好禁用CPU频率缩放和增强功能,以使CPU频率在基准测试期间保持恒定,以获得一致的结果。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)