Skip to content

Conversation

@NachoEchevarria
Copy link
Collaborator

@NachoEchevarria NachoEchevarria commented Oct 15, 2025

Summary of changes

This updates our build and testing from .NET SDK 10 RC1 to RC2.

Reason for change

https://devblogs.microsoft.com/dotnet/dotnet-10-rc-2/
https://github.com/dotnet/core/blob/main/release-notes/10.0/preview/rc2/libraries.md

Implementation details

  • Update RC1 references to RC2
  • Use new agent pools
  • Added false to avoid compilation errors based on this

Test coverage

This functionality is covered by our regular tests.

Other details

@NachoEchevarria NachoEchevarria changed the title Update to RC2 Update to .NET RC2 Oct 15, 2025
@dd-trace-dotnet-ci-bot
Copy link

dd-trace-dotnet-ci-bot bot commented Oct 17, 2025

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing the following branches/commits:

Execution-time benchmarks measure the whole time it takes to execute a program. And are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are shown in red. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.

Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).

gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7659) - mean (71ms)  : 70, 73
     .   : milestone, 71,
    master - mean (71ms)  : 70, 72
     .   : milestone, 71,

    section Baseline
    This PR (7659) - mean (68ms)  : 67, 69
     .   : milestone, 68,
    master - mean (68ms)  : 66, 69
     .   : milestone, 68,

    section CallTarget+Inlining+NGEN
    This PR (7659) - mean (1,046ms)  : 986, 1106
     .   : milestone, 1046,
    master - mean (1,039ms)  : 1002, 1077
     .   : milestone, 1039,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7659) - mean (106ms)  : 105, 107
     .   : milestone, 106,
    master - mean (106ms)  : 105, 108
     .   : milestone, 106,

    section Baseline
    This PR (7659) - mean (105ms)  : 103, 108
     .   : milestone, 105,
    master - mean (106ms)  : 103, 108
     .   : milestone, 106,

    section CallTarget+Inlining+NGEN
    This PR (7659) - mean (747ms)  : 714, 780
     .   : milestone, 747,
    master - mean (749ms)  : 721, 778
     .   : milestone, 749,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7659) - mean (94ms)  : 93, 95
     .   : milestone, 94,
    master - mean (94ms)  : 93, 95
     .   : milestone, 94,

    section Baseline
    This PR (7659) - mean (93ms)  : 91, 95
     .   : milestone, 93,
    master - mean (93ms)  : 91, 95
     .   : milestone, 93,

    section CallTarget+Inlining+NGEN
    This PR (7659) - mean (705ms)  : 671, 740
     .   : milestone, 705,
    master - mean (706ms)  : 674, 739
     .   : milestone, 706,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7659) - mean (92ms)  : 91, 93
     .   : milestone, 92,
    master - mean (92ms)  : 91, 94
     .   : milestone, 92,

    section Baseline
    This PR (7659) - mean (91ms)  : 89, 94
     .   : milestone, 91,
    master - mean (91ms)  : 89, 94
     .   : milestone, 91,

    section CallTarget+Inlining+NGEN
    This PR (7659) - mean (665ms)  : 650, 680
     .   : milestone, 665,
    master - mean (661ms)  : 647, 676
     .   : milestone, 661,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7659) - mean (201ms)  : 197, 205
     .   : milestone, 201,
    master - mean (197ms)  : 193, 200
     .   : milestone, 197,

    section Baseline
    This PR (7659) - mean (196ms)  : 192, 200
     .   : milestone, 196,
    master - mean (193ms)  : 189, 198
     .   : milestone, 193,

    section CallTarget+Inlining+NGEN
    This PR (7659) - mean (1,187ms)  : 1119, 1254
     .   : milestone, 1187,
    master - mean (1,170ms)  : 1095, 1244
     .   : milestone, 1170,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7659) - mean (286ms)  : 279, 292
     .   : milestone, 286,
    master - mean (280ms)  : 272, 287
     .   : milestone, 280,

    section Baseline
    This PR (7659) - mean (283ms)  : 276, 290
     .   : milestone, 283,
    master - mean (278ms)  : 270, 287
     .   : milestone, 278,

    section CallTarget+Inlining+NGEN
    This PR (7659) - mean (962ms)  : 925, 998
     .   : milestone, 962,
    master - mean (942ms)  : 900, 984
     .   : milestone, 942,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7659) - mean (280ms)  : 270, 290
     .   : milestone, 280,
    master - mean (269ms)  : 265, 273
     .   : milestone, 269,

    section Baseline
    This PR (7659) - mean (279ms)  : 270, 288
     .   : milestone, 279,
    master - mean (269ms)  : 264, 274
     .   : milestone, 269,

    section CallTarget+Inlining+NGEN
    This PR (7659) - mean (944ms)  : 893, 996
     .   : milestone, 944,
    master - mean (930ms)  : 882, 978
     .   : milestone, 930,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7659) - mean (281ms)  : 270, 292
     .   : milestone, 281,
    master - mean (274ms)  : 263, 286
     .   : milestone, 274,

    section Baseline
    This PR (7659) - mean (273ms)  : 267, 280
     .   : milestone, 273,
    master - mean (272ms)  : 264, 280
     .   : milestone, 272,

    section CallTarget+Inlining+NGEN
    This PR (7659) - mean (874ms)  : 847, 901
     .   : milestone, 874,
    master - mean (868ms)  : 827, 909
     .   : milestone, 868,

Loading

<PackageReference Include="System.Management" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Error (active) CS0103 The name 'RegistryHive' does not exist in the current context Datadog.Trace.Tools.Runner (net5.0), Datadog.Trace.Tools.Runner (netcoreapp2.1), Datadog.Trace.Tools.Runner (netcoreapp2.2), Datadog.Trace.Tools.Runner (netcoreapp3.0), Datadog.Trace.Tools.Runner (netcoreapp3.1)

<ProjectReference Include="..\..\..\..\src\Datadog.Trace.OpenTracing\Datadog.Trace.OpenTracing.csproj" />
<PackageReference Include="FluentAssertions" Version="6.4.0" />
</ItemGroup>

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[ERR] CompileSamples: C:\Commonfolder\shared\repos\dd-trace-5\tracer\test\test-applications\integrations\Samples.OpenTracing\Program.cs(107,9): error CS0012: The type 'HttpResponseMessage' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm guessing that's a symptom of package pruning too, but meh 😄

@datadog-official

This comment has been minimized.

<PackageReference Include="NETStandard.Library" Version="2.0.3" />
<PackageReference Include="System.Management" Version="5.0.0" />
</ItemGroup>

Copy link
Collaborator Author

@NachoEchevarria NachoEchevarria Oct 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These errors came up. Adding the package reference would solve issues under Windows, but not under Linux / Mac, so the conflictive code had to be removed from compilations (it's not used under linux anyway).

tracer/src/Datadog.Trace.Tools.Runner/Gac/AdministratorHelper.cs(25,89): error CS0103: The name 'WindowsBuiltInRole' does not exist in the current context 
tracer/src/Datadog.Trace.Tools.Runner/Gac/GacNativeMethods.cs(57,29): error CS0103: The name 'RegistryKey' does not exist in the current context
tracer/src/Datadog.Trace.Tools.Runner/Gac/AdministratorHelper.cs(25,33): error CS1069: The type name 'WindowsPrincipal' could not be found in the namespace 'System.Security.Principal'. This type has been forwarded to assembly 'System.Security.Principal.Windows, Version=0.0.0.0, Culture=neutral, PublicKey***=b03f5f7f11d50a3a' Consider adding a reference to that assembly.

</PropertyGroup>

<PropertyGroup Condition=" $(TargetFramework.StartsWith('net4'))">
<GenerateTargetFrameworkAttribute>true</GenerateTargetFrameworkAttribute>
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exception: System.IO.FileNotFoundException: Could not load file or assembly 'System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKey***=cc7b13ffcd2ddd51' or one of its dependencies when running DDBB tests

DotNetPack(x => x
.SetProject(Solution.GetProject(Projects.DdTrace))
.SetConfiguration(BuildConfiguration)
.EnableNoDependencies()
Copy link
Collaborator Author

@NachoEchevarria NachoEchevarria Oct 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I came to this because of an error. It's solved, but we probably don't need to build anyway because that is done previously

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting, agreed, it should be fine 🤔

Copy link
Member

@andrewlock andrewlock left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@NachoEchevarria NachoEchevarria marked this pull request as ready for review October 23, 2025 16:28
@NachoEchevarria NachoEchevarria requested review from a team as code owners October 23, 2025 16:28
Copy link
Collaborator

@gleocadie gleocadie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

@chrisnas chrisnas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM for profiler

Copy link
Contributor

@GreenMatan GreenMatan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM for debugger

@pr-commenter
Copy link

pr-commenter bot commented Oct 27, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #7659 compared to master:

  • 1 benchmarks are faster, with geometric mean 2.430
  • 3 benchmarks are slower, with geometric mean 1.213
  • 5 benchmarks have fewer allocations
  • 3 benchmarks have more allocations

The following thresholds were used for comparing the benchmark speeds:

  • Mann–Whitney U test with statistical test for significance of 5%
  • Only results indicating a difference greater than 10% and 0.3 ns are considered.

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.ActivityBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7659

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑netcoreapp3.1 5.67 KB 5.7 KB 32 B 0.56%

Fewer allocations 🎉 in #7659

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 6.13 KB 6.08 KB -50 B -0.82%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 10.5μs 59.3ns 389ns 0 0 0 5.52 KB
master StartStopWithChild netcoreapp3.1 14μs 74.1ns 363ns 0 0 0 5.67 KB
master StartStopWithChild net472 22.4μs 123ns 704ns 0.907 0.302 0 6.13 KB
#7659 StartStopWithChild net6.0 10.9μs 59.8ns 373ns 0 0 0 5.5 KB
#7659 StartStopWithChild netcoreapp3.1 13.8μs 59.9ns 232ns 0 0 0 5.7 KB
#7659 StartStopWithChild net472 22.2μs 122ns 690ns 0.903 0.226 0 6.08 KB
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 944μs 421ns 1.63μs 0 0 0 2.71 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.02ms 370ns 1.43μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.19ms 1.16μs 4.51μs 0 0 0 3.31 KB
#7659 WriteAndFlushEnrichedTraces net6.0 924μs 71.6ns 248ns 0 0 0 2.71 KB
#7659 WriteAndFlushEnrichedTraces netcoreapp3.1 1.02ms 261ns 1.01μs 0 0 0 2.7 KB
#7659 WriteAndFlushEnrichedTraces net472 1.19ms 148ns 533ns 0 0 0 3.31 KB
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Unknown 🤷 Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 N/A N/A N/A NaN NaN NaN 0 b
master AllCycleSimpleBody netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
master AllCycleSimpleBody net472 N/A N/A N/A NaN NaN NaN 0 b
master AllCycleMoreComplexBody net6.0 N/A N/A N/A NaN NaN NaN 0 b
master AllCycleMoreComplexBody netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
master AllCycleMoreComplexBody net472 N/A N/A N/A NaN NaN NaN 0 b
master ObjectExtractorSimpleBody net6.0 319ns 1.07ns 4.16ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 397ns 2.11ns 10.6ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 294ns 0.0194ns 0.07ns 0.0444 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.3μs 28ns 108ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.79μs 39.3ns 176ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.74μs 1.68ns 6.5ns 0.572 0 0 3.8 KB
#7659 AllCycleSimpleBody net6.0 N/A N/A N/A NaN NaN NaN 0 b
#7659 AllCycleSimpleBody netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#7659 AllCycleSimpleBody net472 N/A N/A N/A NaN NaN NaN 0 b
#7659 AllCycleMoreComplexBody net6.0 N/A N/A N/A NaN NaN NaN 0 b
#7659 AllCycleMoreComplexBody netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#7659 AllCycleMoreComplexBody net472 N/A N/A N/A NaN NaN NaN 0 b
#7659 ObjectExtractorSimpleBody net6.0 331ns 1.3ns 4.85ns 0 0 0 280 B
#7659 ObjectExtractorSimpleBody netcoreapp3.1 403ns 1.87ns 7.95ns 0 0 0 272 B
#7659 ObjectExtractorSimpleBody net472 300ns 0.0381ns 0.143ns 0.0437 0 0 281 B
#7659 ObjectExtractorMoreComplexBody net6.0 6.34μs 27.8ns 100ns 0 0 0 3.78 KB
#7659 ObjectExtractorMoreComplexBody netcoreapp3.1 7.66μs 38.9ns 187ns 0 0 0 3.69 KB
#7659 ObjectExtractorMoreComplexBody net472 6.71μs 6.75ns 26.1ns 0.601 0 0 3.8 KB
Benchmarks.Trace.Asm.AppSecEncoderBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EncodeArgs net6.0 77.6μs 38.7ns 150ns 0 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 96.5μs 281ns 1.09μs 0 0 0 32.4 KB
master EncodeArgs net472 111μs 10.9ns 37.8ns 5.01 0 0 32.5 KB
master EncodeLegacyArgs net6.0 142μs 64.7ns 251ns 0 0 0 2.15 KB
master EncodeLegacyArgs netcoreapp3.1 197μs 154ns 554ns 0 0 0 2.14 KB
master EncodeLegacyArgs net472 262μs 38ns 137ns 0 0 0 2.16 KB
#7659 EncodeArgs net6.0 78.1μs 35.8ns 134ns 0 0 0 32.4 KB
#7659 EncodeArgs netcoreapp3.1 96.7μs 144ns 559ns 0 0 0 32.4 KB
#7659 EncodeArgs net472 109μs 28.5ns 103ns 4.9 0 0 32.51 KB
#7659 EncodeLegacyArgs net6.0 143μs 23.1ns 86.6ns 0 0 0 2.14 KB
#7659 EncodeLegacyArgs netcoreapp3.1 200μs 765ns 2.96μs 0 0 0 2.14 KB
#7659 EncodeLegacyArgs net472 263μs 56ns 217ns 0 0 0 2.17 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Faster 🎉 Same allocations ✔️

Faster 🎉 in #7659

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmarkWithAttack‑netcoreapp3.1 2.430 725,229.95 298,460.79

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 391μs 52ns 194ns 0 0 0 4.55 KB
master RunWafRealisticBenchmark netcoreapp3.1 409μs 259ns 1μs 0 0 0 4.48 KB
master RunWafRealisticBenchmark net472 427μs 55.6ns 215ns 0 0 0 4.66 KB
master RunWafRealisticBenchmarkWithAttack net6.0 285μs 13.6ns 49.2ns 0 0 0 2.24 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 699μs 7.95μs 79.5μs 0 0 0 2.22 KB
master RunWafRealisticBenchmarkWithAttack net472 312μs 29.4ns 114ns 0 0 0 2.29 KB
#7659 RunWafRealisticBenchmark net6.0 392μs 36.6ns 132ns 0 0 0 4.55 KB
#7659 RunWafRealisticBenchmark netcoreapp3.1 409μs 322ns 1.25μs 0 0 0 4.48 KB
#7659 RunWafRealisticBenchmark net472 428μs 59.9ns 232ns 0 0 0 4.66 KB
#7659 RunWafRealisticBenchmarkWithAttack net6.0 283μs 36ns 139ns 0 0 0 2.24 KB
#7659 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 298μs 42.3ns 158ns 0 0 0 2.22 KB
#7659 RunWafRealisticBenchmarkWithAttack net472 308μs 26.4ns 102ns 0 0 0 2.29 KB
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 61μs 45.4ns 170ns 0 0 0 14.52 KB
master SendRequest netcoreapp3.1 71.2μs 59.2ns 229ns 0 0 0 17.42 KB
master SendRequest net472 0.00371ns 0.0014ns 0.00542ns 0 0 0 0 b
#7659 SendRequest net6.0 61.3μs 26.6ns 96ns 0 0 0 14.52 KB
#7659 SendRequest netcoreapp3.1 72.3μs 346ns 1.47μs 0 0 0 17.42 KB
#7659 SendRequest net472 0.00133ns 0.000778ns 0.00301ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Slower ⚠️ Fewer allocations 🎉

Slower ⚠️ in #7659

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net472 1.232 1,930,047.32 2,377,650.00
Benchmarks.Trace.CharSliceBenchmark.OriginalCharSlice‑net472 1.209 2,651,781.88 3,205,075.00

Fewer allocations 🎉 in #7659

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net6.0 7 B 6 B -1 B -14.29%
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net472 73 B 0 b -73 B -100.00%
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net472 47 B 0 b -47 B -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master OriginalCharSlice net6.0 1.91ms 462ns 1.79μs 0 0 0 640.01 KB
master OriginalCharSlice netcoreapp3.1 2.14ms 1.09μs 3.77μs 0 0 0 640 KB
master OriginalCharSlice net472 2.65ms 635ns 2.29μs 100 0 0 641.95 KB
master OptimizedCharSlice net6.0 1.39ms 533ns 2.06μs 0 0 0 7 B
master OptimizedCharSlice netcoreapp3.1 1.68ms 335ns 1.3μs 0 0 0 1 B
master OptimizedCharSlice net472 1.93ms 319ns 1.24μs 0 0 0 73 B
master OptimizedCharSliceWithPool net6.0 875μs 2.01μs 7.77μs 0 0 0 3 B
master OptimizedCharSliceWithPool netcoreapp3.1 811μs 236ns 913ns 0 0 0 0 b
master OptimizedCharSliceWithPool net472 1.13ms 86.3ns 323ns 0 0 0 47 B
#7659 OriginalCharSlice net6.0 1.91ms 393ns 1.52μs 0 0 0 640.01 KB
#7659 OriginalCharSlice netcoreapp3.1 2.07ms 6.42μs 24μs 0 0 0 640 KB
#7659 OriginalCharSlice net472 3.19ms 9.15μs 34.2μs 93.8 0 0 641.93 KB
#7659 OptimizedCharSlice net6.0 1.34ms 404ns 1.56μs 0 0 0 6 B
#7659 OptimizedCharSlice netcoreapp3.1 1.69ms 453ns 1.76μs 0 0 0 1 B
#7659 OptimizedCharSlice net472 2.37ms 4.25μs 16.5μs 0 0 0 0 b
#7659 OptimizedCharSliceWithPool net6.0 866μs 45.6ns 177ns 0 0 0 3 B
#7659 OptimizedCharSliceWithPool netcoreapp3.1 828μs 39.8ns 149ns 0 0 0 0 b
#7659 OptimizedCharSliceWithPool net472 1.16ms 135ns 523ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Slower ⚠️ More allocations ⚠️

Slower ⚠️ in #7659

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 1.198 676,361.16 810,149.11 several?

More allocations ⚠️ in #7659

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 41.96 KB 42.62 KB 660 B 1.57%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 722μs 3.92μs 21.8μs 0 0 0 41.64 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 668μs 3.67μs 22.9μs 0 0 0 41.96 KB
master WriteAndFlushEnrichedTraces net472 948μs 4.59μs 19.5μs 4.46 0 0 56.06 KB
#7659 WriteAndFlushEnrichedTraces net6.0 675μs 591ns 2.05μs 0 0 0 41.82 KB
#7659 WriteAndFlushEnrichedTraces netcoreapp3.1 775μs 6.88μs 67.8μs 0 0 0 42.62 KB
#7659 WriteAndFlushEnrichedTraces net472 921μs 4.19μs 16.2μs 4.46 0 0 56.07 KB
Benchmarks.Trace.DbCommandBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net6.0 1.96μs 5.45ns 21.1ns 0 0 0 1.02 KB
master ExecuteNonQuery netcoreapp3.1 2.62μs 9.29ns 36ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.85μs 4.42ns 17.1ns 0.156 0.0142 0 987 B
#7659 ExecuteNonQuery net6.0 1.93μs 1.48ns 5.72ns 0 0 0 1.02 KB
#7659 ExecuteNonQuery netcoreapp3.1 2.52μs 8.96ns 32.3ns 0 0 0 1.02 KB
#7659 ExecuteNonQuery net472 2.78μs 4.32ns 16.2ns 0.154 0.014 0 987 B
Benchmarks.Trace.ElasticsearchBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master CallElasticsearch net6.0 1.68μs 7.67ns 30.7ns 0 0 0 1.03 KB
master CallElasticsearch netcoreapp3.1 2.19μs 10ns 38.8ns 0 0 0 1.03 KB
master CallElasticsearch net472 3.5μs 3.84ns 14.9ns 0.158 0 0 1.04 KB
master CallElasticsearchAsync net6.0 1.86μs 5.8ns 21.7ns 0 0 0 1.01 KB
master CallElasticsearchAsync netcoreapp3.1 2.33μs 11.3ns 47.8ns 0 0 0 1.08 KB
master CallElasticsearchAsync net472 3.7μs 2.85ns 11ns 0.168 0 0 1.1 KB
#7659 CallElasticsearch net6.0 1.69μs 0.509ns 1.97ns 0 0 0 1.03 KB
#7659 CallElasticsearch netcoreapp3.1 2.15μs 9.15ns 34.2ns 0 0 0 1.03 KB
#7659 CallElasticsearch net472 3.55μs 1.33ns 4.99ns 0.16 0 0 1.04 KB
#7659 CallElasticsearchAsync net6.0 1.94μs 7.28ns 28.2ns 0 0 0 1.01 KB
#7659 CallElasticsearchAsync netcoreapp3.1 2.37μs 9.04ns 33.8ns 0 0 0 1.08 KB
#7659 CallElasticsearchAsync net472 3.69μs 2.79ns 10.4ns 0.167 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net6.0 1.81μs 8.77ns 35.1ns 0 0 0 952 B
master ExecuteAsync netcoreapp3.1 2.5μs 8.81ns 34.1ns 0 0 0 952 B
master ExecuteAsync net472 2.67μs 2.98ns 11.5ns 0.133 0 0 915 B
#7659 ExecuteAsync net6.0 1.88μs 1.35ns 5.22ns 0 0 0 952 B
#7659 ExecuteAsync netcoreapp3.1 2.47μs 4.78ns 18.5ns 0 0 0 952 B
#7659 ExecuteAsync net472 2.73μs 1.26ns 4.89ns 0.136 0 0 915 B
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net6.0 6.84μs 12.4ns 48ns 0 0 0 2.36 KB
master SendAsync netcoreapp3.1 8.63μs 15.1ns 58.6ns 0 0 0 2.9 KB
master SendAsync net472 12.2μs 10.6ns 41.2ns 0.491 0 0 3.18 KB
#7659 SendAsync net6.0 6.87μs 11.3ns 43.6ns 0 0 0 2.36 KB
#7659 SendAsync netcoreapp3.1 8.44μs 19.8ns 76.5ns 0 0 0 2.9 KB
#7659 SendAsync net472 12.6μs 14.5ns 56.1ns 0.499 0 0 3.18 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7659

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net472 278.53 KB 286.72 KB 8.19 KB 2.94%

Fewer allocations 🎉 in #7659

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 274.41 KB 258.01 KB -16.4 KB -5.98%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 45.5μs 258ns 1.83μs 0 0 0 43.78 KB
master StringConcatBenchmark netcoreapp3.1 48.6μs 239ns 1.44μs 0 0 0 42.79 KB
master StringConcatBenchmark net472 56.4μs 285ns 1.27μs 0 0 0 57.34 KB
master StringConcatAspectBenchmark net6.0 460μs 1.01μs 3.51μs 0 0 0 274.41 KB
master StringConcatAspectBenchmark netcoreapp3.1 545μs 1.62μs 5.85μs 0 0 0 276.89 KB
master StringConcatAspectBenchmark net472 405μs 2.07μs 10.2μs 0 0 0 278.53 KB
#7659 StringConcatBenchmark net6.0 42.7μs 218ns 1.8μs 0 0 0 43.94 KB
#7659 StringConcatBenchmark netcoreapp3.1 50.5μs 300ns 2.88μs 0 0 0 42.85 KB
#7659 StringConcatBenchmark net472 56.6μs 191ns 687ns 0 0 0 57.34 KB
#7659 StringConcatAspectBenchmark net6.0 471μs 2.24μs 9.24μs 0 0 0 258.01 KB
#7659 StringConcatAspectBenchmark netcoreapp3.1 548μs 1.69μs 6.33μs 0 0 0 277.74 KB
#7659 StringConcatAspectBenchmark net472 393μs 1.72μs 5.96μs 0 0 0 286.72 KB
Benchmarks.Trace.ILoggerBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.64μs 12.2ns 47.4ns 0 0 0 1.7 KB
master EnrichedLog netcoreapp3.1 3.69μs 17.3ns 71.2ns 0 0 0 1.7 KB
master EnrichedLog net472 3.87μs 6.32ns 24.5ns 0.251 0 0 1.64 KB
#7659 EnrichedLog net6.0 2.66μs 2.15ns 8.34ns 0 0 0 1.7 KB
#7659 EnrichedLog netcoreapp3.1 3.63μs 17.6ns 72.4ns 0 0 0 1.7 KB
#7659 EnrichedLog net472 3.91μs 3.86ns 13.9ns 0.255 0 0 1.64 KB
Benchmarks.Trace.Log4netBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 123μs 58ns 209ns 0 0 0 4.31 KB
master EnrichedLog netcoreapp3.1 127μs 35.3ns 137ns 0 0 0 4.31 KB
master EnrichedLog net472 168μs 52.6ns 190ns 0 0 0 4.52 KB
#7659 EnrichedLog net6.0 123μs 60.5ns 234ns 0 0 0 4.31 KB
#7659 EnrichedLog netcoreapp3.1 127μs 76.7ns 277ns 0 0 0 4.31 KB
#7659 EnrichedLog net472 166μs 42.3ns 164ns 0 0 0 4.52 KB
Benchmarks.Trace.NLogBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 4.91μs 20.6ns 77.1ns 0 0 0 2.26 KB
master EnrichedLog netcoreapp3.1 6.68μs 16.1ns 60.3ns 0 0 0 2.26 KB
master EnrichedLog net472 7.45μs 8.27ns 32ns 0.298 0 0 2.08 KB
#7659 EnrichedLog net6.0 5.08μs 3.64ns 14.1ns 0 0 0 2.26 KB
#7659 EnrichedLog netcoreapp3.1 6.84μs 14.2ns 55.1ns 0 0 0 2.26 KB
#7659 EnrichedLog net472 7.89μs 7.25ns 28.1ns 0.315 0 0 2.08 KB
Benchmarks.Trace.RedisBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net6.0 2.04μs 0.543ns 2.1ns 0 0 0 1.2 KB
master SendReceive netcoreapp3.1 2.73μs 8.07ns 31.3ns 0 0 0 1.2 KB
master SendReceive net472 3.19μs 3.1ns 12ns 0.191 0 0 1.2 KB
#7659 SendReceive net6.0 2μs 11ns 51.4ns 0 0 0 1.2 KB
#7659 SendReceive netcoreapp3.1 2.62μs 11.8ns 45.7ns 0 0 0 1.2 KB
#7659 SendReceive net472 3.13μs 4.99ns 19.3ns 0.188 0 0 1.2 KB
Benchmarks.Trace.SerilogBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 4.41μs 8.41ns 32.6ns 0 0 0 1.58 KB
master EnrichedLog netcoreapp3.1 5.61μs 10.2ns 39.6ns 0 0 0 1.63 KB
master EnrichedLog net472 6.53μs 8.04ns 31.2ns 0.294 0 0 2.03 KB
#7659 EnrichedLog net6.0 4.35μs 5.43ns 20.3ns 0 0 0 1.58 KB
#7659 EnrichedLog netcoreapp3.1 5.57μs 10.1ns 39.3ns 0 0 0 1.63 KB
#7659 EnrichedLog net472 6.62μs 5.27ns 20.4ns 0.298 0 0 2.03 KB
Benchmarks.Trace.SpanBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 779ns 0.299ns 1.16ns 0 0 0 576 B
master StartFinishSpan netcoreapp3.1 962ns 1ns 3.87ns 0 0 0 576 B
master StartFinishSpan net472 922ns 0.429ns 1.6ns 0.0875 0 0 578 B
master StartFinishScope net6.0 963ns 1.95ns 7.54ns 0 0 0 696 B
master StartFinishScope netcoreapp3.1 1.18μs 6.47ns 37.7ns 0 0 0 696 B
master StartFinishScope net472 1.15μs 0.0948ns 0.367ns 0.0988 0 0 658 B
#7659 StartFinishSpan net6.0 779ns 0.211ns 0.79ns 0 0 0 576 B
#7659 StartFinishSpan netcoreapp3.1 979ns 5.1ns 26ns 0 0 0 576 B
#7659 StartFinishSpan net472 973ns 0.0736ns 0.266ns 0.0876 0 0 578 B
#7659 StartFinishScope net6.0 959ns 0.129ns 0.483ns 0 0 0 696 B
#7659 StartFinishScope netcoreapp3.1 1.18μs 5.73ns 23.6ns 0 0 0 696 B
#7659 StartFinishScope net472 1.17μs 0.363ns 1.31ns 0.1 0 0 658 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net6.0 1.13μs 0.341ns 1.23ns 0 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 1.4μs 6.05ns 23.4ns 0 0 0 696 B
master RunOnMethodBegin net472 1.46μs 0.623ns 2.33ns 0.104 0 0 658 B
#7659 RunOnMethodBegin net6.0 1.04μs 5.54ns 29.8ns 0 0 0 696 B
#7659 RunOnMethodBegin netcoreapp3.1 1.43μs 5.47ns 21.2ns 0 0 0 696 B
#7659 RunOnMethodBegin net472 1.45μs 1.07ns 4.16ns 0.102 0 0 658 B

@andrewlock andrewlock merged commit 1697b8e into master Oct 27, 2025
157 checks passed
@andrewlock andrewlock deleted the nacho/UpdateToNetRc2 branch October 27, 2025 12:48
@github-actions github-actions bot added this to the vNext-v3 milestone Oct 27, 2025
@andrewlock andrewlock added the area:builds project files, build scripts, pipelines, versioning, releases, packages label Nov 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:builds project files, build scripts, pipelines, versioning, releases, packages

Projects

None yet

Development

Successfully merging this pull request may close these issues.