I'm running a bash script that makes extensively use of piping. In bash version 5.0.17 (running in Ubuntu 20.04.4) the script is really slow. I did some simple test and I found odd results:
$ bash-5.0$ time for i in {1..10000}; do echo > /dev/null | echo > /dev/null ; done
real 0m21.716s
user 0m25.496s
sys 0m14.913s
Removing the pipe:
bash-5.0$ time for i in {1..10000}; do echo > /dev/null ; echo > /dev/null ; done
real 0m0.097s
user 0m0.071s
sys 0m0.026s
With other bash version I got different (best) results:
bash-5.1$ time for i in {1..10000}; do echo > /dev/null | echo > /dev/null ; done
real 0m10.255s
user 0m9.366s
sys 0m7.084s
With bash 4.4:
bash-4.4$ time for i in {1..10000}; do echo > /dev/null | echo >/dev/null ; done
real 0m9.620s
user 0m5.010s
sys 0m7.528s
Any idea why the pipe behaves so badly?