gda@creare.uucp (gda) (06/13/85)
Are pipes started by the shell faster than those set up by "popen", "fork and exec", etc. ? I've been building a three-generation program (parent-child-grandchild) in which the three communicate in an ideal manner (no back-talk from the children), and I tested the system previous to writing all the spawning code by using explicit pipes in the command line : prog1 | prog2 (prog2 spawned prog3) When I timed this, it ran reasonably fast, so I finished the code for spawning of "prog2" by "prog1". When I timed the final form it ran only half as fast as when done with the explicit pipe. I ran it under three conditions in both "before" and "after" cases, one with a small amount of input data, one with a lot, and one in-between. There was a fairly linear relation between data size and execution time. I tried this with "popen" and with "fork, exec, and dup2" and got roughly the same results. This was done on a Masscomp, which is mostly System V. I used "timex" to measure the "user" time. I don't have access to source code. Any ideas? Am I missing something? Gray Abbott Creare Inc. Hanover, NH {...dartvax!creare!gda}