c ++中的执行时间

时间:2015-05-31 13:38:37

标签: c++ execution-time

尝试使用以下方法查找代码的执行时间:

#include <iostream>
#include <time.h>
using namespace std;

int main()
{
    clock_t t1, t2;

    t1 = clock();

    // code goes here

    t2 = clock();

    float diff = ((float)t2 - (float)t1);

    cout <<"Execution Time = "<<diff / CLOCKS_PER_SEC <<endl;
    system ("pause");

    return 0;    
} 

但每次使用相同的代码执行时都会返回不同的时间。代码是否正确?

我想在不同的场景中检查我的代码的执行时间,但是当我执行两次相同的代码时,它不应该显示相同的时间吗?

1 个答案:

答案 0 :(得分:0)

如上所述here,时钟标记是一个恒定但系统特定长度的时间单位,如功能时钟返回的那些。提到我们需要考虑一对 使用此方法查找一段代码的执行时间时的场景/事实。

1)刻度表示的时间取决于操作系统。此外还有OS内部 时钟滴答的计数器。请参阅此SuperUser Question

2)需要为在系统上运行的任何进程分配资源。但是,如果处理器忙于另一个更重要的过程,甚至可能耗尽了资源,该怎么办?在这种情况下,您的进程将被放入队列中,并以较低的优先级运行。但是由于时钟信号存储在内部计数器中(如上所述),即使其他一些进程同时使用处理器,它也会继续增加。

<强>结论

根据时钟滴答找到执行时间的方法不会 产生精确的结果,但它只会给你一个关于执行时间的想法。