GNU bug report logs -
#71094
[PATCH] Prefer to run find and grep in parallel in rgrep
Previous Next
Reported by: Spencer Baugh <sbaugh <at> janestreet.com>
Date: Tue, 21 May 2024 14:36:01 UTC
Severity: normal
Tags: patch
Done: Andrea Corallo <acorallo <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #47 received at 71094 <at> debbugs.gnu.org (full text, mbox):
On 22/05/2024 21:06, Manuel Giraud wrote:
>> I'd be happy if someone could time these methods on MS-Windows and on
>> some *BSD system, at least. Bonus points for macOS.
> I'm not sure it is what you asked for but here is some numbers on
> OpenBSD (native 'find' and 'xargs'):
>
> $ time find ~/emacs-repo -type f -exec grep foo {} + > /dev/null
> 0m04.09s real 0m03.29s user 0m00.74s system
> $ time find ~/emacs-repo -type f -print0 | xargs -0 grep foo > /dev/null
> 0m04.10s real 0m03.45s user 0m00.66s system
>
> $ find /usr/src -type f | wc -l
> 114315
> $ time find /usr/src -type f -exec grep foo {} + > /dev/null
> 0m14.07s real 0m07.68s user 0m06.29s system
> $ time find /usr/src -type f -print0 | xargs -0 grep foo > /dev/null
> 0m13.83s real 0m07.94s user 0m06.25s system
I'm not sure how many matches for 'foo' are there inside your /usr/src,
but if there are a lot, it slows down the last phase (grep output),
making the performance gains a wash.
For this particular scenario, it's better to search for a string with no
matches. Then you won't need to redirect to /dev/null too.
This bug report was last modified 326 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.