How fast are Linux pipes anyway?
For some reason, this raised my curiosity how fast different languages write individual characters to a pipe:PHP comes in at about 900KiB/s:    php -r 'while (1) echo 1;' | pv > /dev/null

Python is about 50% faster at about 1.5MiB/s:    python3 -c 'while (1): print (1, end="")' | pv > /dev/null

Javascript is slowest at around 200KiB/s:    node -e 'while (1) process.stdout.write("1");' | pv > /dev/null

What's also interesting is that node crashes after about a minute:    FATAL ERROR: Ineffective mark-compacts
    near heap limit Allocation failed -
    JavaScript heap out of memory

All results from within a Debian 10 docker container with the default repo versions of PHP, Python and Node.Update:Checking with strace shows that Python caches the output:    strace python3 -c 'while (1): print (1, end="")' | pv > /dev/null

Outputs a series of:    write(1, "11111111111111111111111111111111"..., 8193) = 8193

PHP and JS do not.So the Python equivalent would be:    python3 -c 'while (1): print (1, end="", flush=True)' | pv > /dev/null

Which makes it compareable to the speed of JS.Interesting, that PHP is over 4x faster than the Python and JS.