BW_PIPE(8) - LMBENCH man page
bw_pipe - time data movement through pipes
creates a Unix pipe between two processes and moves 50MB through the pipe
in 64KB chunks (note that pipes are typically sized smaller than that).
Output format is
"Pipe bandwidth: %0.2f MB/sec\\n", megabytes_per_second, i.e.,
Pipe bandwidth: 4.87 MB/sec
This benchmark can move up to six times the requested memory per process.
There are two processes, the sender and the receiver.
systems implement the read/write system calls as a bcopy from/to kernel space
to/from user space. Bcopy will use 2-3 times as much memory bandwidth:
there is one read from the source and a write to the destionation. The
write usually results in a cache line read and then a write back of
the cache line at some later point. Memory utilization might be reduced
by 1/3 if the processor architecture implemented "load cache line"
and "store cache line" instructions (as well as getcachelinesize).
Funding for the development of
this tool was provided by Sun Microsystems Computer Corporation.