【问题标题】:using clock() (or similar) function to find time of execution when there are multiple processes当有多个进程时,使用clock()(或类似的)函数来查找执行时间
【发布时间】:2015-01-04 05:00:46
【问题描述】:

我想使用诸如clock() 之类的函数来查找特定代码段的执行时间。但是如果有多个线程/进程,那么那些在它们之间被调度的会影响clock()函数的输出吗?

示例代码: 流程1

int main()
{
 clock_t t1,t2;
 t1=clock();
 //Long code
 t2=clock();
 float diff ((float)t2-(float)t1);
 cout<<diff<<endl;
 system ("pause");
 return 0;
}

我的问题是,如果在长代码运行时安排了另一个进程,时钟函数是否也计算用于其他程序的周期?如果是,有什么替代方法可以获取一段代码的确切执行时间

【问题讨论】:

    标签: process clock timing


    【解决方案1】:

    这是不可能的。与您的代码一起运行的许多其他进程会影响执行速度(由于您指出的调度)。此外,您的代码本身可能会使用磁盘、网络等,因此您的进程的 CPU 使用时间可能没有意义。您可能希望在同一系统和相同负载上多次运行程序的时序分析,并从中取平均值。

    【讨论】:

      猜你喜欢
      • 2013-03-27
      • 2011-11-20
      • 2018-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-17
      • 2017-06-20
      相关资源
      最近更新 更多