I wanted to time how long it took for one of my functions to run yesterday and it ended up taking me a little bit of time to track down how to do this in C++ on a Linux box, so I thought I’d throw up the code here.
#include <sys/time.h> #include <iostream> using namespace std; int main() { struct timeval start_time; struct timeval end_time; gettimeofday(&start_time, NULL); aFunction(someParams); // function to be timed gettimeofday(&end_time, NULL); // get difference, multiply by 1E-6 to convert to seconds float duration = (end_t.tv_sec - start_t.tv_sec) + (end_time.tv_usec - start_time.tv_usec) * 1E-6; cout << "duration: " << duration << "s" << endl; }
And that’s it! Not too much to it, but was a little difficult to track down.