function1()
とfunction3()
の合計経過時間を測定するには?C++繰り返し呼び出される関数の時間を測定する
実際の状況では、function1()
とfunction3()
が複雑なプログラムに散在しています。私はtimer
を開始して停止する関数の名前を使用できる何かが必要なので、最終的に各関数の合計時間を表示することができます。
function1()
の時間が必要な値ではありませんのでご注意ください。 何度も何度も呼ばれているfunction1()
の時間が必要です。さん)(
1)一時的に名前変更はfunction1:プロファイラを実行
int function1()
{
int i = 1;
i++;
return i;
}
int function2()
{
int i = 1;
i++;
return i;
}
int function3()
{
int i = 1;
i++;
return i;
}
int main(int argc, char *argv[])
{
size_t t = 0;
while (t < 1000000)
{
// I want something like startTimer(function1)
function1();
// I want something like pauseTimer(function1)
function2();
// I want something like startTimer(function3)
function3();
// I want something like pauseTimer(function3)
}
// printTimer() here will print the total elapsed time of function 1 and
//function 3
getchar();
return 0;
}
あなたの例がコンパイルされていないことに加えて、すでに何か試しましたか?私は実際に何が問題なのか分かりません。これを達成するために 'std :: chrono'の関数を使うことができます。 – user0042
すみません。コードは私が書いているものではなく、現実の状況を反映しています。私はそれをコンパイルするために編集しました。私は、タイマー管理のためにstd :: mapを使用しましたが、オーバーヘッドが大きすぎます。私はstd :: chronoをコア部分で使っていました。一度起こったときに、単一の機能が痛む時間を測定することは容易である。関数がどこにでも散在し、合計時間を測定する必要があるのは難しい –
おそらくプロファイリングツールが必要です。 – user0042