Skip to content

Commit 30d1beb

Browse files
committed
Avoid double get clock in xlog to improve performance
1 parent 856ab13 commit 30d1beb

File tree

4 files changed

+7
-6
lines changed

4 files changed

+7
-6
lines changed

src/sys/log.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ typedef struct XLogCtx {
2929
const char *pFormat;
3030
xlog_flag_t eFlag;
3131
xbool_t bNewLine;
32+
uint32_t nUsec;
3233
xtime_t time;
3334
} xlog_ctx_t;
3435

@@ -233,7 +234,7 @@ static size_t XLog_CreateLogInfo(const xlog_ctx_t *pCtx, char* pOut, size_t nSiz
233234
xlog_cfg_t *pCfg = &g_xlog.config;
234235
const xtime_t *pTime = &pCtx->time;
235236
char sDate[XLOG_TIME_MAX] = XSTR_INIT;
236-
uint32_t nMsecTime = XTime_GetUsec() / 1000;
237+
uint32_t nMsecTime = pCtx->nUsec / 1000;
237238

238239
if (pCfg->eTimeFormat == XLOG_TIME)
239240
{
@@ -298,8 +299,7 @@ void XLog_Display(xlog_flag_t eFlag, xbool_t bNewLine, const char *pFormat, ...)
298299
g_xlog.config.bToFile))
299300
{
300301
xlog_ctx_t ctx;
301-
XTime_Get(&ctx.time);
302-
302+
ctx.nUsec = XTime_Get(&ctx.time);
303303
ctx.eFlag = eFlag;
304304
ctx.pFormat = pFormat;
305305
ctx.bNewLine = bNewLine;

src/sys/xtime.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,12 +339,13 @@ uint64_t XTime_GetStamp(void)
339339
return (uint64_t)now.nSec * 1000000 + nTimeStamp;
340340
}
341341

342-
void XTime_Get(xtime_t *pTime)
342+
uint32_t XTime_Get(xtime_t *pTime)
343343
{
344344
xtime_spec_t now;
345345
XTime_GetClock(&now);
346346
XTime_FromEpoch(pTime, now.nSec);
347347
pTime->nFraq = (uint8_t)(now.nNanoSec / 10000000);
348+
return (uint32_t)(now.nNanoSec / 1000);
348349
}
349350

350351
size_t XTime_GetStr(char *pDst, size_t nSize, xtime_fmt_t eFmt)

src/sys/xtime.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ extern "C" {
7575
#endif
7676

7777
void XTime_Init(xtime_t *pTime);
78-
void XTime_Get(xtime_t *pTime);
7978
void XTime_GetTm(struct tm *pTm);
79+
uint32_t XTime_Get(xtime_t *pTime);
8080
uint64_t XTime_Serialized(void);
8181
uint64_t XTime_GetU64(void);
8282
uint32_t XTime_GetUsec(void);

src/xver.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
#define XUTILS_VERSION_MAX 2
1414
#define XUTILS_VERSION_MIN 6
15-
#define XUTILS_BUILD_NUMBER 22
15+
#define XUTILS_BUILD_NUMBER 23
1616

1717
#ifdef __cplusplus
1818
extern "C" {

0 commit comments

Comments
 (0)