Skip to content

Instantly share code, notes, and snippets.

@bricef
Created June 17, 2011 20:50
Show Gist options
  • Save bricef/1032312 to your computer and use it in GitHub Desktop.
Save bricef/1032312 to your computer and use it in GitHub Desktop.
Timing Sections of C code using macros
#ifndef _TIMING_UTIL_H
#define _TIMING_UTIL_H
#ifdef DEBUG
#include <sys/time.h>
#define TIMEIT_INIT(name) \
struct timeval timeit_t1_##name, timeit_t2_##name, timeit_diff_##name; \
double timeit_interval_##name \
#define TIMEIT_START(name) \
gettimeofday(&timeit_t1_##name, NULL)
#define TIMEIT_STOP(name) \
do{ \
gettimeofday(&timeit_t2_##name , NULL); \
timersub(&timeit_t2_##name, &timeit_t1_##name, &timeit_diff_##name); \
timeit_interval_##name = timeit_diff_##name.tv_sec + (timeit_diff_##name.tv_usec / 1000000.0 ) ; \
}while(0)
#define TIMEIT_INTERVAL(name) timeit_interval_##name
#define TIMEIT_SHOWME(name) printf("timeit took %f seconds\n", timeit_interval_##name)
#else
#define TIMEIT_INIT(name)
#define TIMEIT_START(name)
#define TIMEIT_STOP(name)
#define TIMEIT_INTERVAL(name)
#define TIMEIT_SHOWME(name)
#endif /* DEBUG */
#endif /* _TIMING_UTIL_H */
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment