【问题标题】:What is the best way to calculate the running time of a multi-process program?计算多进程程序运行时间的最佳方法是什么?
【发布时间】:2017-01-11 04:26:20
【问题描述】:

我有一个用C 编写的multi-process 程序,其中父级派生了许多子级,我需要计算它的运行时间,并将其与执行以下操作的multi-threaded 程序的运行时间进行比较与multi-process 的任务相同。

除了使用time.hclock 函数(它报告CPU 时间,因此如果线程数很高,可能会在multi-threaded 程序中报告更多时间),我还能用什么来计算这两个程序'运行时间进行比较?

我目前正在使用time ./a.out 来计算它们的运行时间。

【问题讨论】:

  • clock_gettime 可用于此目的:stackoverflow.com/questions/2962785/…
  • 你对“运行时间”的定义是什么?您是指从第一个子进程启动到最后一个子进程终止之间的挂钟时间吗?您是指所有子进程使用的总挂钟时间吗? (例如,如果两个进程需要 5 秒才能完成,那么总挂钟时间将为 10 秒)或者您的意思是所有子进程累积的 CPU 时间量?
  • 我指的是挂钟时间。

标签: c multithreading time multiprocessing


【解决方案1】:

只需在主线程上使用时间库中的 gettimeofday(),它就会为您提供经过的时间。

如果您在线程上运行它,它只会回复特定线程经过的时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多