[linux-l] Re: find(1) mit und ohne xargs(1)
Rocco Rutte
pdmef at cs.tu-berlin.de
Mo Okt 10 17:30:32 CEST 2005
Hi,
* Oliver Bandel [05-10-10 17:16:33 +0200] wrote:
>On Mon, Oct 10, 2005 at 02:54:09PM +0000, Rocco Rutte wrote:
>Was find(1) angeht: das könnte man vielleicht mal redesignen? ;-)
Siehe unten.
>> $ time find . -type f -exec chmod 600 {} ";"
>> find . -type f -exec chmod 600 {} ";" 0.40s user 2.93s system 65% cpu
>> 5.082 total
Was hier besonders zu beachten ist, ist, dass fast die gesamte Laufzeit
im Kernel verbracht wird. Ich spekuliere mal, dass nicht das Finden der
Dateien auf der Platte so lange dauert, sondern für jede gefundene einen
fork() machen zu müssen, der relativ teuer ist. Forks braucht man ja
öfter aber wie bei -exec eben meist nicht so viele auf einmal, dass das
aufs Tempo drückt. D.h. find(1) kann im Prinzip nichts dafür, weil das
Betriebssystem hier viel unnötige Arbeit leisten muss, was mit xargs
genau umgangen werden kann. In einer de-Newsgroup gab es IIRC schon
richtige Schlammschlachten, die -exec den Tod wünschten...
bye, Rocco
--
:wq!
Mehr Informationen über die Mailingliste linux-l