Skip to content

perf: pool StringBuilder in DisplayNameBuilder.FormatArguments #6028

Description

@thomhurst

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+.

Metadata

Metadata

Assignees

No one assigned

    Labels

    .NETPull requests that update .net codeenhancementNew feature or requestperformancePerformance optimization

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions