gpt4 book ai didi

c - 多进程程序的执行时间(linux)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:55:09 24 4
gpt4 key购买 nike

我有以下c代码

for(i=0;i<n;i++){
child_pid [i]= fork ();
if (child_pid[i] != 0) {
printf ("");
printf ("");
}
else
printf ("");

我想计算这个程序的执行时间我尝试了以下命令时间./a.out 5结果是

real    0m1.009s
user 0m0.000s
sys 0m0.004s
root@bt:~/Desktop#

我应该怎么做才能获得正确的格式化输出?我可以只显示执行时间而不显示执行结果吗?提前致谢

最佳答案

因此您的父进程应该等待所有子进程终止。否则 time 将仅测量(并等待)第一个进程。这就是您观察到的:第一个进程终止,time 打印其工作时间,然后子进程继续工作。

一种方法是添加类似的内容

for (i = 0; i < n; i++) if (child_pid[i]) wait(NULL);

就在 exit(0); 之前。

据我所知,没有办法让 time 等待所有子进程终止。

关于c - 多进程程序的执行时间(linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20873541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com