我试图弄清楚为什么在后台处理 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,0000 左右建立后台进程的速度。例如,计数打印到屏幕的速度会减慢一个看似线性的量,具体取决于总数。
机器运行基本上立即完成的后台作业的速率不应该是一致的,而不管添加和关闭了多少?