Warum sind Zeichenfolgen in einer Datei schneller als auf Standardeingabe?

Warum sind Zeichenfolgen in einer Datei schneller als auf Standardeingabe?

Ich hätte angenommen, dass es ähnlich lange dauern würde, vielleicht höchstens 30 % Unterschied, aber das ist völlig daneben.

Gibt es dafür Gründe?

Mit Zsh:

Demonstration

Und mit verschiedenen Muscheln:

Demo mit Bash, Sh und Fish

Antwort1

Es ist kein Problem von strings, sondern ein Problem der Pipes in OSX.

Was auch immer Sie tun, das Senden von Daten durch eine Pipe ist furchtbar langsam, insbesondere wenn die Lese- und Schreibgrößen nicht aufeinander abgestimmt sind. Versuchen Sie etwas in der Art von

cat somefile | cat | cat | cat | cat | cat | strings

um eine Vorstellung davon zu bekommen, wie sehr diese Pipes die Verarbeitung verlangsamen.

verwandte Informationen