TUnit.Engine/Helpers/DisplayNameBuilder.cs:54 and :76 allocate a fresh StringBuilder per call inside FormatArguments. This runs for every data-driven test row when building display names.
var sb = new StringBuilder();
for (var i = 0; i < arguments.Length; i++) { ... }
return sb.ToString();
TUnit.Core/Helpers/StringBuilderPool.cs already exists in the codebase but isn't used here. Either route through the pool, or on net8+ use DefaultInterpolatedStringHandler / string.Create with a span.
Why hot: Per data-driven test row, every run.
TFM: Pool works on all; interpolated-string-handler approach needs net8+.
TUnit.Engine/Helpers/DisplayNameBuilder.cs:54and:76allocate a freshStringBuilderper call insideFormatArguments. This runs for every data-driven test row when building display names.TUnit.Core/Helpers/StringBuilderPool.csalready exists in the codebase but isn't used here. Either route through the pool, or on net8+ useDefaultInterpolatedStringHandler/string.Createwith a span.Why hot: Per data-driven test row, every run.
TFM: Pool works on all; interpolated-string-handler approach needs net8+.