プログラムの実行時間を知りたかったのですが、ファイルの入出力に必要な時間も除外したかったのです。この目的のために、time()
関数を使用しました。多く.h
の.cpp
ファイルがありますが、時間オブジェクトが参照される場所はここだけです。
私の問題は、 start の値が最初に正しく設定されているのにdosomethingelse()
、初めて呼び出されたときに失われる (ゼロに設定される) ことです。これにより、とsub_duration
の差(ゼロ) が の値になるため、 は非常に大きな値になります。end
start
end
これが私がそれをどのように使用したかです:
main.cpp
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;
}
doth.h
extern time_t start;
extern time_t end;
extern time_t sub_duration;
extern time_t total_duration;
dosomethingelse();
dosth.cpp
#include"dosth.h"
dosomethingelse()
{
if(somecondition)
{
end = time(NULL);
sub_duration = difftime(end,start);
total_duration += sub_duration;
writesomethingTofile();
start = time(NULL);
}
}