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 负载和处理器以及其他因素。