Linux 上的 C:运行 25 个并行进程明显快于运行 24 个进程

Linux 上的 C:运行 25 个并行进程明显快于运行 24 个进程

我的 C 程序使用 fork() 创建新进程,并测量每个进程完成其工作所需的时间。事实上,我让他们做这个工作 10000 次并测量时间。

测量是通过 gettimeofday(...) 完成的,并且在每个过程完成后打印结果。

重点是:通过运行 24 个并行进程,这些时间集中在 180 000 usec 左右。但当我增加到 25 个进程时,时间会下降并集中在 100 000 usec 左右。这是 Linux 特有的吗?通过创建更多进程,我可以从操作系统获得更多资源?

或者这完全不可能,我测量的时间是错误的?应该注意的是,测量值在 1->24 进程中增加,在 25 进程中下降。

相关内容