Я только что узнал, что выполнение find .
медленнее, чем выполнение find . | cat
. Вот результаты выполнения time find .
3 раз в моем домашнем каталоге:
First:
real 0m4.385s
user 0m0.546s
sys 0m2.072s
Second:
real 0m4.090s
user 0m0.514s
sys 0m1.798s
Third:
real 0m4.197s
user 0m0.508s
sys 0m1.905s
Выполнение time find . | cat
вместо этого значительно улучшает результаты:
First:
real 0m2.988s
user 0m0.378s
sys 0m1.649s
Second:
real 0m2.768s
user 0m0.370s
sys 0m1.471s
Third:
real 0m2.768s
user 0m0.370s
sys 0m1.471s
Как видите, find . | cat
намного быстрее. Я действительно смущен этим, единственное, что делает cat
, это копирует свой ввод в вывод, верно? Я действительно понятия не имею, почему это происходит, и я был бы счастлив, если бы кто-нибудь мог сказать мне, почему это так.
Для справки, вот вывод find . | wc
:
246646 477986 25198490
Спасибо.
time
принимает конвейер в качестве аргумента, а не сигнальную команду. - person choroba   schedule 28.06.2015find .
, самый медленный, независимо от того, передаю ли я его черезcat
. Второе заклинание, и последующие (наверное пока кэш не промахнется) быстрее - person Eric Renouf   schedule 29.06.2015