Кот /dev/zero | pv > /dev/null
cat /dev/zero | pv > /dev/null
Что именно здесь происходит и что определяет скорость этого процесса.
Даже на низкоуровневом оборудовании вы получаете пару скоростей передачи ГБ / с, как это.
1 ответ
cat /dev/zero
дает вам поток нулевых символов. Когда вы открываете его и читаете из него, вы используете ядро. Ядро реализует /dev/zero
в драйверах / char / mem.c.
Так далеко как cat
или же pv
обеспокоен тем, что в этом нет ничего особенного. Выбор использовать /dev/zero
ничем не отличается от чтения /etc/passwd
, Разница лишь в том, что вы читаете виртуальный файл, а не настоящий файл. Таким образом, работа, которую выполняет ядро, отличается - т.е. он не должен работать с файловой системой и т. Д.
Запись в /dev/null
почти так же. pv
не заботится о цели (в данном случае это ваша оболочка из-за перенаправления), и опять же, единственное отличие состоит в том, что запись отбрасывается, потому что это то, для чего используется драйвер ядра /dev/null
снова в drivers/char/mem.c
,
Скорость этого процесса будет зависеть от нагрузки системного ввода-вывода и процессора, а также от всего остального.