From df58a701136ee53f14df0ae45ca1c253864cbaf3 Mon Sep 17 00:00:00 2001 From: Douglas Q Hawkins Date: Thu, 12 Mar 2026 16:03:16 -0400 Subject: [PATCH 1/2] Using forEach to avoid Iterator allocation --- .../src/main/java/datadog/trace/core/CoreTracer.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dd-trace-core/src/main/java/datadog/trace/core/CoreTracer.java b/dd-trace-core/src/main/java/datadog/trace/core/CoreTracer.java index a9a34f810ff..02ad026347f 100644 --- a/dd-trace-core/src/main/java/datadog/trace/core/CoreTracer.java +++ b/dd-trace-core/src/main/java/datadog/trace/core/CoreTracer.java @@ -1230,9 +1230,10 @@ void write(final List trace) { // run early tag postprocessors before publishing to the metrics writer since peer / base // service are needed - for (DDSpan span : writtenTrace) { - span.processServiceTags(); - } + + // DQH - Using forEach avoids ArrayList$Iter allocation + writtenTrace.forEach(DDSpan::processServiceTags); + boolean forceKeep = metricsAggregator.publish(writtenTrace); TraceCollector traceCollector = writtenTrace.get(0).context().getTraceCollector(); From 5a3f01842fc975e46ed7c478e3b7c6f1bf02c37f Mon Sep 17 00:00:00 2001 From: Douglas Q Hawkins Date: Thu, 12 Mar 2026 16:15:21 -0400 Subject: [PATCH 2/2] spotless --- .../src/main/java/datadog/trace/core/CoreTracer.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dd-trace-core/src/main/java/datadog/trace/core/CoreTracer.java b/dd-trace-core/src/main/java/datadog/trace/core/CoreTracer.java index 02ad026347f..c38f4994c3a 100644 --- a/dd-trace-core/src/main/java/datadog/trace/core/CoreTracer.java +++ b/dd-trace-core/src/main/java/datadog/trace/core/CoreTracer.java @@ -1230,10 +1230,10 @@ void write(final List trace) { // run early tag postprocessors before publishing to the metrics writer since peer / base // service are needed - + // DQH - Using forEach avoids ArrayList$Iter allocation writtenTrace.forEach(DDSpan::processServiceTags); - + boolean forceKeep = metricsAggregator.publish(writtenTrace); TraceCollector traceCollector = writtenTrace.get(0).context().getTraceCollector();