Added benchmark output
authorLukas Krickl <lukas@krickl.dev>
Wed, 29 Nov 2023 17:05:46 +0000 (18:05 +0100)
committerLukas Krickl <lukas@krickl.dev>
Wed, 29 Nov 2023 17:05:46 +0000 (18:05 +0100)
src/ulas.c

index 68a4e3c366fdbeab27050e5d35e3ab6db4696744..d149d5ca1cef5a5615b78e04d14b3f3554a6381f 100644 (file)
@@ -4,6 +4,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <assert.h>
+#include <sys/time.h>
 
 FILE *ulasin = NULL;
 FILE *ulasout = NULL;
@@ -90,7 +91,14 @@ void ulas_fclose(FILE *f) {
   fclose(f);
 }
 
+long long ulas_timeusec(void) {
+  struct timeval tv;
+  gettimeofday(&tv, NULL);
+  return 1000000 * tv.tv_sec + tv.tv_usec;
+}
+
 int ulas_main(struct ulas_config cfg) {
+  long long total_startusec = ulas_timeusec();
   int rc = 0;
   ulas_init(cfg);
   if (cfg.output_path) {
@@ -171,6 +179,12 @@ cleanup:
 
   ulas_free();
 
+  long long total_endusec = ulas_timeusec();
+  if (ulascfg.verbose) {
+    fprintf(ulaserr, "[Completed in %lld microseconds]\n",
+            total_endusec - total_startusec);
+  }
+
   return rc;
 }