Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!mit-eddie!uw-beaver!tikal!uccba!finegan From: finegan@uccba.UUCP (Mike Finegan) Newsgroups: comp.misc Subject: Re: Faster/cheaper execution of Unix pipelines? A proposal. Message-ID: <1259@uccba.UUCP> Date: Tue, 20-Oct-87 19:23:54 EDT Article-I.D.: uccba.1259 Posted: Tue Oct 20 19:23:54 1987 Date-Received: Fri, 23-Oct-87 01:43:30 EDT References: <385@ohlone.UUCP> Organization: Univ of Cincinnati, College of Business Admin. Lines: 35 Keywords: Unix pipes, program composition, small is beautiful Summary: tell me more In article <385@ohlone.UUCP>, nelson@ohlone.UUCP (Bron Nelson) writes: > The software engineer in me insists that "many small > routines, each doing one job well" is the correct thing to do, but > my practical side recognizes the high cost of Unix pipes. I think > the answer is not to give up on "small is beautiful;" rather it > seems that the answer is to invent a cheaper method of combining > small pieces together. > Under this scheme, the composed program has significantly less interaction > with the system than the pipeline would. The composed program is of > course somewhat bigger and slower than a custom built utility would be, > but it should be smaller and faster than the pipeline. The individual > pieces can be small and simple; not encumbered by vast numbers of rarely > used options. Only the people wanting the additional functionality need > pay for it, and their cost is modest (I hope). The ideal use of pipes is quick and convenient prototyping of new programs, or new system-like routines. Once done correctly, combine it together efficiently, right? Sure, you don't always have source and maybe the ideal operating system should do all this just as fast ... My question(s) is: do system level pipes have the same resource allocation and/or expense as the function pipe() ? How do they compare to output of each stage to a temp file, and then execution of the next stage with the previous temp file ? Even with temp `files' in memory ? Should there be an adjustable buffer size for pipes ? Lastly, should you provide subroutine libraries (object) with all your system routines, and write simple programs to connect only those elements you desired? Or provide entry points to one object file? Lots of disk space, right? Is the idea to create fixes for the present flavors of Unix, or to create improved versions? Always lost in thought (or something similar), Mike Finegan ...!{hal,decuac,mit-eddie,pyramid,...}!uccba[!ucece1]!finegan