mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2024-12-14 10:13:05 +02:00
Improve efficiency of FUNCTION_LOG*() macros.
Call stackTraceTestStop()/stackTraceTestStart() once per block instead of with every param call. This was done to be cautious but is not necessary and slows down development. These functions were never built into production so had no impact there.
This commit is contained in:
parent
7e2f6a6a43
commit
f819a32cdf
@ -158,6 +158,10 @@
|
|||||||
<release-item>
|
<release-item>
|
||||||
<p>Use <code>THROW_ON_SYS_ERROR*()</code> to improve code coverage.</p>
|
<p>Use <code>THROW_ON_SYS_ERROR*()</code> to improve code coverage.</p>
|
||||||
</release-item>
|
</release-item>
|
||||||
|
|
||||||
|
<release-item>
|
||||||
|
<p>Improve efficiency of <code>FUNCTION_LOG*()</code> macros.</p>
|
||||||
|
</release-item>
|
||||||
</release-development-list>
|
</release-development-list>
|
||||||
</release-core-list>
|
</release-core-list>
|
||||||
|
|
||||||
|
@ -34,36 +34,29 @@ level is set to debug or trace.
|
|||||||
#define FUNCTION_LOG_LEVEL() \
|
#define FUNCTION_LOG_LEVEL() \
|
||||||
FUNCTION_LOG_logLevel
|
FUNCTION_LOG_logLevel
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG_TEST_TRACE
|
||||||
#define FUNCTION_LOG_BEGIN_BASE(logLevel) \
|
#define FUNCTION_LOG_BEGIN_BASE(logLevel) \
|
||||||
LogLevel FUNCTION_LOG_LEVEL() = STACK_TRACE_PUSH(logLevel); \
|
LogLevel FUNCTION_LOG_LEVEL() = STACK_TRACE_PUSH(logLevel); \
|
||||||
\
|
\
|
||||||
{ \
|
{ \
|
||||||
stackTraceParamLog();
|
stackTraceParamLog(); \
|
||||||
|
stackTraceTestStop();
|
||||||
|
|
||||||
#define FUNCTION_LOG_END_BASE() \
|
#define FUNCTION_LOG_END_BASE() \
|
||||||
|
stackTraceTestStart(); \
|
||||||
LOG_WILL(FUNCTION_LOG_LEVEL(), 0, "(%s)", stackTraceParam()); \
|
LOG_WILL(FUNCTION_LOG_LEVEL(), 0, "(%s)", stackTraceParam()); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define FUNCTION_LOG_PARAM_BASE_BEGIN() \
|
|
||||||
stackTraceTestStop() \
|
|
||||||
|
|
||||||
#define FUNCTION_LOG_PARAM_BASE_END() \
|
|
||||||
stackTraceTestStart()
|
|
||||||
#else
|
#else
|
||||||
#define FUNCTION_LOG_BEGIN_BASE(logLevel) \
|
#define FUNCTION_LOG_BEGIN_BASE(logLevel) \
|
||||||
LogLevel FUNCTION_LOG_LEVEL() = STACK_TRACE_PUSH(logLevel); \
|
LogLevel FUNCTION_LOG_LEVEL() = STACK_TRACE_PUSH(logLevel); \
|
||||||
\
|
\
|
||||||
if (logWill(FUNCTION_LOG_LEVEL())) \
|
if (logWill(FUNCTION_LOG_LEVEL())) \
|
||||||
{ \
|
{ \
|
||||||
stackTraceParamLog()
|
stackTraceParamLog();
|
||||||
|
|
||||||
#define FUNCTION_LOG_END_BASE() \
|
#define FUNCTION_LOG_END_BASE() \
|
||||||
LOG(FUNCTION_LOG_LEVEL(), 0, "(%s)", stackTraceParam()); \
|
LOG(FUNCTION_LOG_LEVEL(), 0, "(%s)", stackTraceParam()); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define FUNCTION_LOG_PARAM_BASE_BEGIN()
|
|
||||||
#define FUNCTION_LOG_PARAM_BASE_END()
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/***********************************************************************************************************************************
|
/***********************************************************************************************************************************
|
||||||
@ -82,15 +75,11 @@ FUNCTION_LOG_VOID() is provided as a shortcut for functions that have no paramet
|
|||||||
FUNCTION_LOG_END_BASE()
|
FUNCTION_LOG_END_BASE()
|
||||||
|
|
||||||
#define FUNCTION_LOG_PARAM(typeMacroPrefix, param) \
|
#define FUNCTION_LOG_PARAM(typeMacroPrefix, param) \
|
||||||
FUNCTION_LOG_PARAM_BASE_BEGIN(); \
|
stackTraceParamAdd(FUNCTION_LOG_##typeMacroPrefix##_FORMAT(param, stackTraceParamBuffer(#param), STACK_TRACE_PARAM_MAX))
|
||||||
stackTraceParamAdd(FUNCTION_LOG_##typeMacroPrefix##_FORMAT(param, stackTraceParamBuffer(#param), STACK_TRACE_PARAM_MAX)); \
|
|
||||||
FUNCTION_LOG_PARAM_BASE_END()
|
|
||||||
|
|
||||||
#define FUNCTION_LOG_PARAM_P(typeMacroPrefix, param) \
|
#define FUNCTION_LOG_PARAM_P(typeMacroPrefix, param) \
|
||||||
do \
|
do \
|
||||||
{ \
|
{ \
|
||||||
FUNCTION_LOG_PARAM_BASE_BEGIN(); \
|
|
||||||
\
|
|
||||||
char *buffer = stackTraceParamBuffer(#param); \
|
char *buffer = stackTraceParamBuffer(#param); \
|
||||||
\
|
\
|
||||||
if (param == NULL) \
|
if (param == NULL) \
|
||||||
@ -100,16 +89,12 @@ FUNCTION_LOG_VOID() is provided as a shortcut for functions that have no paramet
|
|||||||
buffer[0] = '*'; \
|
buffer[0] = '*'; \
|
||||||
stackTraceParamAdd(FUNCTION_LOG_##typeMacroPrefix##_FORMAT(*param, buffer + 1, STACK_TRACE_PARAM_MAX - 1) + 1); \
|
stackTraceParamAdd(FUNCTION_LOG_##typeMacroPrefix##_FORMAT(*param, buffer + 1, STACK_TRACE_PARAM_MAX - 1) + 1); \
|
||||||
} \
|
} \
|
||||||
\
|
|
||||||
FUNCTION_LOG_PARAM_BASE_END(); \
|
|
||||||
} \
|
} \
|
||||||
while(0)
|
while(0)
|
||||||
|
|
||||||
#define FUNCTION_LOG_PARAM_PP(typeMacroPrefix, param) \
|
#define FUNCTION_LOG_PARAM_PP(typeMacroPrefix, param) \
|
||||||
do \
|
do \
|
||||||
{ \
|
{ \
|
||||||
FUNCTION_LOG_PARAM_BASE_BEGIN(); \
|
|
||||||
\
|
|
||||||
char *buffer = stackTraceParamBuffer(#param); \
|
char *buffer = stackTraceParamBuffer(#param); \
|
||||||
\
|
\
|
||||||
if (param == NULL) \
|
if (param == NULL) \
|
||||||
@ -122,8 +107,6 @@ FUNCTION_LOG_VOID() is provided as a shortcut for functions that have no paramet
|
|||||||
buffer[1] = '*'; \
|
buffer[1] = '*'; \
|
||||||
stackTraceParamAdd(FUNCTION_LOG_##typeMacroPrefix##_FORMAT(**param, buffer + 2, STACK_TRACE_PARAM_MAX - 2) + 2); \
|
stackTraceParamAdd(FUNCTION_LOG_##typeMacroPrefix##_FORMAT(**param, buffer + 2, STACK_TRACE_PARAM_MAX - 2) + 2); \
|
||||||
} \
|
} \
|
||||||
\
|
|
||||||
FUNCTION_LOG_PARAM_BASE_END(); \
|
|
||||||
} \
|
} \
|
||||||
while(0)
|
while(0)
|
||||||
|
|
||||||
@ -293,7 +276,8 @@ test macros are compiled out.
|
|||||||
if (stackTraceTest()) \
|
if (stackTraceTest()) \
|
||||||
{ \
|
{ \
|
||||||
STACK_TRACE_PUSH(logLevelDebug); \
|
STACK_TRACE_PUSH(logLevelDebug); \
|
||||||
stackTraceParamLog()
|
stackTraceParamLog(); \
|
||||||
|
stackTraceTestStop()
|
||||||
|
|
||||||
#define FUNCTION_TEST_PARAM(typeMacroPrefix, param) \
|
#define FUNCTION_TEST_PARAM(typeMacroPrefix, param) \
|
||||||
FUNCTION_LOG_PARAM(typeMacroPrefix, param)
|
FUNCTION_LOG_PARAM(typeMacroPrefix, param)
|
||||||
@ -305,6 +289,7 @@ test macros are compiled out.
|
|||||||
FUNCTION_LOG_PARAM_PP(typeName, param)
|
FUNCTION_LOG_PARAM_PP(typeName, param)
|
||||||
|
|
||||||
#define FUNCTION_TEST_END() \
|
#define FUNCTION_TEST_END() \
|
||||||
|
stackTraceTestStart(); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define FUNCTION_TEST_VOID() \
|
#define FUNCTION_TEST_VOID() \
|
||||||
|
Loading…
Reference in New Issue
Block a user