On Tuesday 02 November 2004 07:24 pm, Maurits van Rees wrote:
> Find is actually a lot faster. I timed it on my system, as root in
> the root dir:
>
> mauritsvanrees:/# time ls -1RA | egrep -v "^$" | egrep -c -v ":$"
> 216348
>
> real    4m10.773s
> user    0m14.210s
> sys     0m19.960s
>
> mauritsvanrees:/# time find . -regex ".*" | wc -l
> 216334
>
> real    1m5.149s
> user    0m5.560s
> sys     0m3.900s

> So `find' is roughly four times as fast. The difference in the number
> of files is probably because some files were removed during the
> operation, though I'm not completely sure of that. And `find' also
> counts the current directory, so it finds one more than the other
> solution.

I don't agree with your time results:
[EMAIL PROTECTED]:/home/robsims: time ls -1RA | egrep -v "^$" | egrep -c -v ":$"
126062

real    0m26.526s
user    0m0.665s
sys     0m0.658s
[EMAIL PROTECTED]:/home/robsims: time find . -regex ".*" | wc -l
126067

real    0m1.651s
user    0m0.617s
sys     0m0.258s
[EMAIL PROTECTED]:/home/robsims: time ls -1RA | egrep -v "^$" | egrep -c -v ":$"
126062

real    0m0.664s
user    0m0.469s
sys     0m0.189s
[EMAIL PROTECTED]:/home/robsims: time find . -regex ".*" | wc -l
126067

real    0m1.193s
user    0m0.591s
sys     0m0.177s

So yes, the second run was much shorter than the first, but only 
because it was second, not because it was inherently faster.  Beware 
the effects of caching when benchmarking.  You can shorten the ls
command line:

time ls -1RA | egrep -c -v -e "^$" -e ":$" with no significant change
in execution time, but fixing the find line:
[EMAIL PROTECTED]:/home/robsims: time find . | wc -l
126067

real    0m0.295s
user    0m0.119s
sys     0m0.177s
...helps quite a bit.  My count differents correlates to one "."
entry and four directories ending in a colon.
-- 
Rob


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED] 
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to