随时停止计时器并在C ++中再次启动计时器

时间:2015-06-01 09:20:38

标签: c++ timer

我在用C ++做。例如,我想计算进程A所需的时间,重置计时器并再次启动计时器以计算进程B的时间。如何重置计时器并在第二个进程中重新启动计时器?

1 个答案:

答案 0 :(得分:0)

使用ctime库。

代码:

#include <iostream>
#include <ctime>
using namespace std;
int main()
{
    time_t time_1;
    time_t time_2;

    time ( &time_1 );
    processA();
    time ( &time_2 );

    cout<<Time Taken by A: << time_2 - time_1<< seconds<<endl;

    time ( &time_1 );
    processB();
    time ( &time_2 );

    cout<<Time Taken by B: << time_2 - time_1<< seconds<<endl;
}

此处有类似的问题: - Trying to calculate difference between two times, won't subtract

修改 有clock()函数,它是执行过程所采取的近似度量。而time()函数为您提供系统时间。所以取决于你需要什么,你可以使用其中之一。由于这两个函数将返回不同的值。当您需要准确的时间时使用time(),包括进程在资源的等待队列中的时间,但是如果您需要时间执行,则使用clock()。 clock()会更快(多个线程并行执行会加速时钟)或更慢(资源很少)。

时钟代码:

它的使用方式与时间相同。每次调用时钟都会返回时钟值并重置时间

c_start = clock();
processA();
c_end = clock();

cout<<Time Taken by A: << c_end - c_start<< seconds<<endl;

c_start = clock();
processB();
c_end = clock();

cout<<Time Taken by B: << c_end - c_start<< seconds<<endl;

时钟()的精彩参考:http://en.cppreference.com/w/cpp/chrono/c/clock

以毫秒为单位的时间:

#include <chrono>


using namespace std::chrono;
milliseconds ms = duration_cast< milliseconds >(system_clock::now().time_since_epoch()

再次按以前的代码减去时间!