将进程置于后台是否会降低性能?

将进程置于后台是否会降低性能?

如果我做:

sleep 1 

相对

sleep 1 & wait $!

生成前台进程与后台进程的 CPU 使用率是否有任何差异?或者两条生产线的性能是否完全相同?

答案1

使用这两个命令,shell 将 1/ 创建一个执行 sleep 的并行子进程,2/ 告诉操作系统... 将 shell 进程暂停,直到 sleep 进程结束。然后性能相同。

答案2

是的。

在我的系统上,第一个需要 3.0 毫秒,第二个需要 3.3 毫秒 CPU 时间。

实际上,如果你睡了一整秒,我永远不会担心 0.3 毫秒的 CPU 时间。

0.3 毫秒可能是由于fork需要放入sleep后台的额外内容造成的。换句话说:这是一次性成本,而不是后台运行作业的 10% 额外成本。

相关内容