【问题标题】:execution time for multiprocesses program (linux)多进程程序(linux)的执行时间
【发布时间】:2014-01-01 21:37:13
【问题描述】:

我有以下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# 

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

【问题讨论】:

    标签: c linux


    【解决方案1】:

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

    一种方法是添加类似的东西

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

    就在exit(0);之前。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-27
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 2011-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多