파이썬에서 오는 것은 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;
}
그러나 이것은 매우 반복적입니다. 그리고 내가 쓸 수 있도록하는 기능 래퍼처럼 뭔가를하고 싶은 : C++에서 이것을 달성하기 위해 어떤 방법이 있나요
timer(compute_a, a, b)
timer(compute_b, b, c)
:
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;
}
처럼 사용할 수있는?
PS : 나는 이렇게 내가 프로파일 플래그로 내 코드를 다시 컴파일하고 Valgrind의 또는 내가 과거에이 패턴을 사용한 다른 도구
[C++ 11]을 사용하는 경우 [variadic template] (http://en.wikipedia.org/wiki/Variadic_template)을 만들 수 있다고 생각합니다. (http://en.wikipedia.org/wiki/C++11). 또는 단순히 [preprocessor] (http://en.wikipedia.org/wiki/C_preprocessor) 매크로. –