Bash スクリプトで多くのプロセスをバックグラウンド化すると、速度が低下する理由を理解しようとしています。何かのようなもの:
function lolecho() {
echo "lol" &> /dev/null
}
c=0
while true; do
for i in $(seq 1 1000); do
lolecho &
((c+=1))
if [[ $((c%1000)) -eq 0 ]]; then
echo "Count $c"
fi
done
sleep .1
done
ゲートから 10,000、20,0000 まで悲鳴を上げます... しかし、70,000... 80,000 前後でバックグラウンド プロセスを立ち上げる速度が遅くなり始めます。同様に、カウントが画面に出力される速度は、合計に応じて一見直線的に遅くなります。
マシンが基本的に即座に終了するバックグラウンド ジョブを実行できる速度は、追加および終了されたジョブの数に関係なく一定であるべきではありませんか?