Skip site navigation (1)Skip section navigation (2)
Date:      18 Apr 2002 19:57:09 -0300
From:      "Jim C." <jconner@enterit.com>
To:        Dan Nelson <dnelson@allantgroup.com>
Cc:        "Jim C." <notjames@concon.homeip.net>, Michael E Mercer <mmercer@nc.rr.com>, Taylor Dondich <thexder@lvcm.com>, questions@FreeBSD.ORG
Subject:   Re: More of a scripting question I guess.
Message-ID:  <1019170630.72577.94.camel@snafu.concon.homeip.net>
In-Reply-To: <20020418151102.GC21402@dan.emsphone.com>
References:  <000901c1e678$bc14fa80$6600a8c0@penguin> <20020418015926.GI72244@dan.emsphone.com> <3CBE2F51.41E19E8A@nc.rr.com> <20020418023400.GJ72244@dan.emsphone.com> <1019106179.72577.32.camel@snafu.concon.homeip.net> <20020418044346.GB21402@dan.emsphone  <20020418151102.GC21402@dan.emsphone.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 2002-04-18 at 12:11, Dan Nelson wrote:
> In the last episode (Apr 18), Jim C. said:
> > On Thu, 2002-04-18 at 01:43, Dan Nelson wrote:
> > > In the last episode (Apr 18), Jim C. said:
> > > > On Wed, 2002-04-17 at 23:34, Dan Nelson wrote:
> > > > > In the last episode (Apr 17), Michael E Mercer said:
> > > > > > another way to do it is this with the same outcome:
> > > > > > 
> > > > > > while read address ; do
> > > > > >   somecommand $address
> > > > > > done < file.txt
> > > > > 
> > > > > But that puts the input file at the end of the command, which
> > > > > makes it harder to see where the input is coming from,
> > > > > especially if you have a lot of stuff in your loop.
> > > > 
> > > > But its still more resource intensive.  If you pipe a huge file
> > > > into while the machine has to store that file into memory before
> > > > processing it whereas with the redirection it simply gets
> > > > filtered straight into the while loop line by line.
> > > 
> > > No it doesn't; 
> > 
> > It does. (not significantly but it does)
> > 
> > > the 'read' command will pull one line at a time out of the pipe.
> >
> > Correct.  However, the pipe "fills up" before read starts to take lines
> > out of it.  This is where the resources get taken.
> 
> Pipes aren't infinite buffers.  The pipe fills up at 16k, and simply
> blocks cat until the script empties it a bit.  The resources are taken
> by the extra syscalls and the context switches between the shell and
> cat.
>  
> > Based on these tests I guarantee you the pipe is taking more system
> > resources (albeit not much) than the redirect is.
> 
> No argument there.  But I'd have switched to C long before trying to
> process a 15MB file line-by-line in a scripting language :)
> 
hahaha...yes.  I suppose so that would have been the best route to go in
such a situation.

> I think we've strayed into bikeshed territory anyhow.

indeed.  =P

- Jim

> 
> -- 
> 	Dan Nelson
> 	dnelson@allantgroup.com
> 



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1019170630.72577.94.camel>