在下面的代码中,如何测量总经过时间function1()
和function3()
?C++测量重复调用的函数的时间
在实际情况中,function1()
和function3()
散落在复杂的程序中的任何地方。我需要一些可以使用函数名称来启动和停止一个timer
,所以最终我可以打印出每个函数总共需要多长时间。
请注意,所需的时间不是所需的时间,而是function1()
。 总计时间贬值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