来自python我试图找到一种方法来定时调用C++代码中的几个函数。到目前为止,我正在使用这个。多个函数调用的时机
void my_func(/*some args*/) {
clock_t t_begin = std::clock();
// code
clock_t t_end = std::clock();
double elapsed_secs_U = double(t_end - t_begin)/CLOCKS_PER_SEC;
}
但是这是高度重复的。我想有类似功能的包装,这样我可以这样写:
void timer(func, *args) {
clock_t t_begin = std::clock();
func(*args)
clock_t t_end = std::clock();
double elapsed_secs_U = double(t_end - t_begin)/CLOCKS_PER_SEC;
}
它可以用来像:
timer(compute_a, a, b)
timer(compute_b, b, c)
有没有办法在C++来实现这一目标?
PS:我需要在生产运行时序,因此,我不想重新编译代码才能使用概要分析标志,并将其粘Valgrind的或任何其他工具
我想你可以做一些[variadic模板](http://en.wikipedia.org/wiki/Variadic_template)这样做,如果使用[C++ 11] (http://en.wikipedia.org/wiki/C++11)。或者只是一个[预处理器](http://en.wikipedia.org/wiki/C_preprocessor)宏。 – 2014-10-01 07:36:29