我想知道一个程序的执行时间,但我也想排除文件输入/输出所需的时间。为此,我使用了该time()
功能。有很多文件.h
,.cpp
但这里是唯一引用时间对象的地方。
dosomethingelse()
我的问题是,虽然 start 的值在开始时设置正确,但在第一次调用时它会丢失它(设置为零) 。这使得有一个非常大的值,因为现在和sub_duration
之间的差异为零,是 的值。end
start
end
这是我使用它的方式:
主文件
time_t start=0;
time_t end=0;
time_t sub_duration=0;
time_t total_duration=0;
int main()
{
start = time(NULL);
while(somethingtodo)
{
dosomething();
dosomethingelse();
}
end = time(NULL);
sub_duration = difftime(end,start);
total_duration += sub_duration;
}
多思.h
extern time_t start;
extern time_t end;
extern time_t sub_duration;
extern time_t total_duration;
dosomethingelse();
多思.cpp
#include"dosth.h"
dosomethingelse()
{
if(somecondition)
{
end = time(NULL);
sub_duration = difftime(end,start);
total_duration += sub_duration;
writesomethingTofile();
start = time(NULL);
}
}