我在用C ++做。例如,我想计算进程A所需的时间,重置计时器并再次启动计时器以计算进程B的时间。如何重置计时器并在第二个进程中重新启动计时器?
答案 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()
再次按以前的代码减去时间!