通过 /dev/null 分析文件读取速度?

通过 /dev/null 分析文件读取速度?

我正在通过以下方式分析某个 Linux 程序使用不同数量的线程读取某个输入文件的速度:

time ~/src/myprogram -t $t inputfile 1>/dev/null 2>/dev/null

似乎无论我使用多少线程(从 12 到 1),时间都完全相同。有没有其他方法可以测试以确保它不受数据发送速度的影响/dev/null

答案1

内核将从传入块设备读取的 I/O 缓存在空闲 RAM 中。除非文件非常大,否则您可能会访问 RAM 中的缓存数据,而不会真正导致任何 I/O。

快速搜索和阅读这个 Stack Overflow 上的答案表明这可能会做到这一点:

sync && echo 1 > /proc/sys/vm/drop_caches

因此我会尝试在执行 I/O 的命令之前发出这些命令。

相关内容