What
high_performance_async_writer::write() in src/impl/async/high_performance_async_writer.cpp:79-86 calls to_string() three times per log entry — for message, file, and function — creating three heap allocations on every log call.
Why
- Logging is on the hot path of every system in the kcenon ecosystem
- Three
std::string allocations per message adds measurable overhead under high throughput
- The downstream
batch_entry constructor could accept std::string_view for zero-copy
Where
src/impl/async/high_performance_async_writer.cpp:79-86
How
Acceptance Criteria
What
high_performance_async_writer::write()insrc/impl/async/high_performance_async_writer.cpp:79-86callsto_string()three times per log entry — formessage,file, andfunction— creating three heap allocations on every log call.Why
std::stringallocations per message adds measurable overhead under high throughputbatch_entryconstructor could acceptstd::string_viewfor zero-copyWhere
src/impl/async/high_performance_async_writer.cpp:79-86How
Acceptance Criteria
batch_entryacceptsstd::string_viewparameterswrite()path avoids unnecessary string copies