cat /dev/zero | pv > /dev/null

cat /dev/zero | pv > /dev/null

cat /dev/zero | pv > /dev/null

这里究竟发生了什么以及什么决定了这个过程的速度。

即使在低端硬件上,您也可以获得这样的几 GB/s 的传输速度。

答案1

cat /dev/zero为您提供零字符流。当您打开它并从中读取时,您正在使用内核。内核/dev/zero驱动程序/char/mem.c

就或cat而言pv,这没什么特别的。选择使用/dev/zero与阅读没什么不同/etc/passwd。唯一的区别是你在阅读虚拟的文件,而不是真正的文件。因此内核所做的工作有所不同 - 即它不必处理文件系统等事务。

写入/dev/null几乎相同。 pv不关心目标(在这种情况下,由于重定向,它是你的 shell),因此唯一的区别是写入被丢弃,因为这是内核驱动程序所做的/dev/null,再次在drivers/char/mem.c

该过程的速度取决于系统 I/O 负载和处理器以及其他因素。

相关内容