perf: replace manual function name extraction with std::source_location #3132
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Replaced the previous string concatenation approach for logging function names with
std::source_location::current().function_name()
. This change significantly improves performance by avoiding runtime string operations. Instead of manually manipulating function signatures usingmethodName
to extract function names,std::source_location
provides this information directly in an efficient manner.Fixes this CPU overload:
Behaviour
Actual
Concatenating strings with
methodName
to retrieve function names, which involves runtime overhead.Expected
Using
std::source_location::current().function_name()
directly to retrieve function names, reducing runtime string manipulation and improving performance.Type of change
How Has This Been Tested
The updated implementation was tested to ensure that the logs produce the correct function names without the overhead of runtime string manipulation. Benchmarks comparing the old and new approaches demonstrated a noticeable reduction in processing time for logging.
Checklist