in reply to Groking grep

There is a always tradeoff between file open/close operations and spawning children.

This will vary somewhat from computer to computer. On my own machine, I got nearly identical timings for the "child_grep" and the "inline_perl" routines.

This may also vary depending on the data set. When I used a data.txt which was only one tenth the size, the "inline_perl" routine was actually five times faster than the "child_grep". When the data file got larger, the "child_grep" became the faster choice by a reasonable margin.

A lot of this depends on where your computer's bottlenecks are. Is the data file on your local disk, or being served over NFS? (And are the NFS files being cached?) Are you low on memory? Is your processor too slow to keep up?

I think you will also find as a general rule that "inline_grep" is slower than "inline_perl", especially if a match occurs early in the data set and you can jump out of the "inline_perl" loop early with a "last" command.