The Effect of Pipe Capacity on Unix Pipeline Performance
1–10 of 17 posts
Re: The Effect of Pipe Capacity on Unix Pipeline Performance
#2Re: The Effect of Pipe Capacity on Unix Pipeline Performance
#3Re: The Effect of Pipe Capacity on Unix Pipeline Performance
#4I expected some examples and benchmarks with some common unix tools.
Re: The Effect of Pipe Capacity on Unix Pipeline Performance
#5I wanted to see:
- What happens when piping an 8 TiB file through awk to be stored on another physical volume (proly want to use xfs).
- A graph of various block sizes, various file sizes, pipeline sizes and timing using a HPET. I don't know how you make an 2+-way pipe like it the diagrams except by process substitution, except that doesn't always work and you can't create cycles without creating FIFO (named pipes):
cmd0 ~joe/foo &
cmd4 (cmd6 here ~joe/foo)
(...) # outer can r/w
(...) # outer can wRe: The Effect of Pipe Capacity on Unix Pipeline Performance
#6Re: The Effect of Pipe Capacity on Unix Pipeline Performance
#7I wonder how much stuff breaks if you actually change the pipe size. I bet there’s a lot of assumptions kicking around.
Re: The Effect of Pipe Capacity on Unix Pipeline Performance
#8I wonder how much stuff breaks if you actually change the pipe size. I bet there’s a lot of assumptions kicking around.
The vast majority of shell script writers don't know or care what the pipe size is. The tools they are using treat them as just one solid stream of data. There's not much to break.
Re: The Effect of Pipe Capacity on Unix Pipeline Performance
#9I wonder how much stuff breaks if you actually change the pipe size. I bet there’s a lot of assumptions kicking around.
Re: The Effect of Pipe Capacity on Unix Pipeline Performance
#10Awhhh. :'( I wanted to see: - What happens when piping an 8 TiB file through awk to be stored on another physical volume (proly want to use xfs). - A graph of various block sizes, various file sizes, pipeline sizes and timing using a HPET. I don't know how you make an 2+-way pipe like it the diagrams except by process substitution, except that doesn't always work and you can't create cycles without creating FIFO (nam…
However, arbitrary graphs are possible with the system calls available -- just create all the pipes in the spawning process with pipe(), and after fork(), but before exec() move the right ends into the file descriptors 0, 1, and 2 with dup2().