From b6d80d130c3d63e4c6add220811883f8fd381265 Mon Sep 17 00:00:00 2001 From: luwenpeng Date: Mon, 9 Oct 2023 17:30:00 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BB=8E=E6=97=B6=E9=97=B4=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E4=B8=AD=E8=8E=B7=E5=8F=96=E6=97=B6=E9=97=B4=E6=88=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/src/timestamp.cpp | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/common/src/timestamp.cpp b/common/src/timestamp.cpp index a553322..e9b9a55 100644 --- a/common/src/timestamp.cpp +++ b/common/src/timestamp.cpp @@ -10,7 +10,7 @@ struct timestamp { - struct timespec timestamp; + uint64_t timestamp_ms; uint64_t update_interval_ms; }; @@ -21,7 +21,6 @@ struct timestamp *timestamp_new(uint64_t update_interval_ms) timestamp_update(ts); LOG_DEBUG("%s: TIMESTAMP->update_interval_ms : %lu", LOG_TAG_TIMESTAMP, timestamp_update_interval_ms(ts)); - LOG_DEBUG("%s: TIMESTAMP->current_sec : %lu", LOG_TAG_TIMESTAMP, timestamp_get_sec(ts)); LOG_DEBUG("%s: TIMESTAMP->current_msec : %lu", LOG_TAG_TIMESTAMP, timestamp_get_msec(ts)); return ts; @@ -40,8 +39,9 @@ void timestamp_update(struct timestamp *ts) { struct timespec temp; clock_gettime(CLOCK_MONOTONIC, &temp); - ATOMIC_SET(&(ts->timestamp.tv_sec), temp.tv_sec); - ATOMIC_SET(&(ts->timestamp.tv_nsec), temp.tv_nsec); + uint64_t current_timestamp_ms = temp.tv_sec * 1000 + temp.tv_nsec / 1000000; + + __atomic_store_n(&ts->timestamp_ms, current_timestamp_ms, __ATOMIC_RELEASE); } uint64_t timestamp_update_interval_ms(struct timestamp *ts) @@ -49,17 +49,7 @@ uint64_t timestamp_update_interval_ms(struct timestamp *ts) return ts->update_interval_ms; } -uint64_t timestamp_get_sec(struct timestamp *ts) -{ - uint64_t sec = ATOMIC_READ(&(ts->timestamp.tv_sec)); - - return sec; -} - uint64_t timestamp_get_msec(struct timestamp *ts) { - uint64_t sec = ATOMIC_READ(&(ts->timestamp.tv_sec)); - uint64_t nsec = ATOMIC_READ(&(ts->timestamp.tv_nsec)); - - return sec * 1000 + nsec / 1000000; + return __atomic_load_n(&ts->timestamp_ms, __ATOMIC_ACQUIRE); }