停止定时器在任何时间和开始定时器再次在c++

Stop Timer At Any Time and Start Timer Again in C++

本文关键字:定时器 c++ 开始 时间 任何      更新时间:2023-10-16

我正在用c++做。例如,我想计算进程A的时间,重置计时器并再次启动计时器以计算进程b的时间。如何为第二个进程重置计时器并再次启动计时器?

使用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;
}

类似的问题在这里:-试图计算两个时间之间的差,won't减去。

编辑:

有一个clock()函数,它是进程在执行过程中所采取的近似度量。而time()函数给出的是系统时间。所以根据你的需要,你可以使用其中一个。因为这两个函数将返回不同的值。当您需要确切的时间时使用time(),包括进程在等待资源队列中的时间,但如果您需要进程在执行中所花费的时间,则使用clock()。Clock()将更快(多个线程并行执行,这将加快时钟速度)或更慢(资源稀缺)。

时钟代码:

它的用法与time相同。每次调用时钟返回时钟值并重置时间

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;

关于clock()的重要参考: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()

再次减去前面代码中的次数!