Bei der Suche nach Übereinstimmungen mit grep
stelle ich häufig fest, dass die nachfolgende Suche erheblich weniger Zeit in Anspruch nimmt als die erste - z. B. 25s vs. 2s. Es liegt auf der Hand, dass die Datenstrukturen aus der letzten Ausführung nicht wiederverwendet wurden - diese sollten freigegeben werden. Als ich einen time
Befehl ausführte grep
, bemerkte ich ein interessantes Phänomen:
real 24m36.561s
user 1m20.080s
sys 0m7.230s
Wohin geht der Rest der Zeit? Kann ich irgendetwas tun, damit es jedes Mal schnell läuft? (zB einen anderen Prozess die Dateien lesen lassen, bevor sie grep
durchsucht werden.)
TL;DR
Antwort lautet also "[block waiting for] I / O".