[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