Skip to content

Commit 0c80bc1

Browse files
committed
src: optimize trace_name allocation in Worker::Run
1 parent d09c3ff commit 0c80bc1

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/node_worker.cc

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,8 +295,17 @@ size_t Worker::NearHeapLimit(void* data, size_t current_heap_limit,
295295
}
296296

297297
void Worker::Run() {
298-
std::string trace_name = "[worker " + std::to_string(thread_id_.id) + "]" +
299-
(name_ == "" ? "" : " " + name_);
298+
std::string trace_name;
299+
// Pre-allocate space: "[worker " (8) + thread_id (20) + "]" (1) + " " (1)
300+
// + typical name (~30) = ~60 bytes. Use 64 for alignment.
301+
trace_name.reserve(64);
302+
trace_name = "[worker ";
303+
trace_name += std::to_string(thread_id_.id);
304+
trace_name += "]";
305+
if (!name_.empty()) {
306+
trace_name += " ";
307+
trace_name += name_;
308+
}
300309
TRACE_EVENT_METADATA1(
301310
"__metadata", "thread_name", "name", TRACE_STR_COPY(trace_name.c_str()));
302311
CHECK_NOT_NULL(platform_);

0 commit comments

Comments
 (0)