From 1e32a1f6c017f73527b2e04b279b135cea4614ae Mon Sep 17 00:00:00 2001 From: icex2 Date: Sat, 23 Jan 2021 23:19:48 +0100 Subject: [PATCH] util/time: Add functions to measure time --- src/main/util/time.c | 29 +++++++++++++++++++++++++++++ src/main/util/time.h | 10 ++++++++++ 2 files changed, 39 insertions(+) diff --git a/src/main/util/time.c b/src/main/util/time.c index acee0f5..daf71e8 100644 --- a/src/main/util/time.c +++ b/src/main/util/time.c @@ -66,4 +66,33 @@ void util_time_get_current_time(struct util_time_timestamp* timestamp) timestamp->month = tm->tm_mon + 1; // Years since 1900 timestamp->year = tm->tm_year + 1900; +} + +uint64_t util_time_now_ns() +{ + struct timespec ts; + + clock_gettime(0, &ts); + + return ts.tv_sec * 1000000000 + ts.tv_nsec; +} + +uint64_t util_time_delta_ns(uint64_t prev_ns, uint64_t now_ns) +{ + return now_ns - prev_ns; +} + +double util_time_delta_us(uint64_t prev_ns, uint64_t now_ns) +{ + return util_time_delta_ns(prev_ns, now_ns) / 1000.0; +} + +double util_time_delta_ms(uint64_t prev_ns, uint64_t now_ns) +{ + return util_time_delta_ns(prev_ns, now_ns) / 1000.0 / 1000.0; +} + +double util_time_delta_sec(uint64_t prev_ns, uint64_t now_ns) +{ + return util_time_delta_ns(prev_ns, now_ns) / 1000.0 / 1000.0 / 1000.0; } \ No newline at end of file diff --git a/src/main/util/time.h b/src/main/util/time.h index 80f106b..9d66147 100644 --- a/src/main/util/time.h +++ b/src/main/util/time.h @@ -23,4 +23,14 @@ void util_time_sleep_sec(uint64_t time_sec); void util_time_get_current_time(struct util_time_timestamp* timestamp); +uint64_t util_time_now_ns(); + +uint64_t util_time_delta_ns(); + +double util_time_delta_us(uint64_t prev_ns, uint64_t now_ns); + +double util_time_delta_ms(uint64_t prev_ns, uint64_t now_ns); + +double util_time_delta_sec(uint64_t prev_ns, uint64_t now_ns); + #endif //UTIL_TIME_H