Merge "Utility function to conveniently measure time"
diff --git a/speedtest/utils.cc b/speedtest/utils.cc
new file mode 100644
index 0000000..841ed99
--- /dev/null
+++ b/speedtest/utils.cc
@@ -0,0 +1,17 @@
+#include "utils.h"
+
+#include <cstdlib>
+#include <iostream>
+
+namespace speedtest {
+
+long SystemTimeMicros() {
+  struct timespec ts;
+  if (clock_gettime(CLOCK_MONOTONIC, &ts)) {
+    std::cerr << "Error reading system time\n";
+    std::exit(1);
+  }
+  return ts.tv_sec * 1000000 + ts.tv_nsec / 1000;
+}
+
+}  // namespace speedtest
diff --git a/speedtest/utils.h b/speedtest/utils.h
new file mode 100644
index 0000000..95909b1
--- /dev/null
+++ b/speedtest/utils.h
@@ -0,0 +1,12 @@
+#ifndef SPEEDTEST_UTILS_H
+#define SPEEDTEST_UTILS_H
+
+namespace speedtest {
+
+// Return relative time in microseconds
+// This isn't convertible to an absolute date and time
+long SystemTimeMicros();
+
+}  // namespace speedtst
+
+#endif  // SPEEDTEST_UTILS_H