4
我剛剛發現做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
感謝。
@LucasTrzesniewski:不。在bash中,'time'需要* pipeline *作爲參數,而不是signle命令。 – choroba
@choroba我壞,不知道這是一個殼內置 –
你怎麼真的在做時間測試?我想知道緩存是否可能與它有關。對我而言,無論我是否通過「貓」管道,我發現我第一次「發現」是最慢的。第二個咒語和後續(可能直到緩存未命中)更快 –