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.