文字列が標準入力よりもファイル上で高速なのはなぜですか?

文字列が標準入力よりもファイル上で高速なのはなぜですか?

おそらく最大で 30% の差がある程度の、同様の時間がかかるだろうと予想していましたが、それは大きく外れています。

これには何か理由があるのでしょうか?

Zshの場合:

デモンストレーション

異なるシェルの場合:

Bash、Sh、Fish を使ったデモ

答え1

これは の問題ではなくstrings、OSX のパイプの問題です。

何をしても、パイプを介したデータ送信は、特に読み取りと書き込みのサイズが揃っていない場合は、非常に遅くなります。次のようなことを試してみてください。

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

これらのパイプが処理をどの程度遅くするかを把握します。

関連情報