Skip to content

Conversation

@andrewlock
Copy link
Member

Summary of changes

  • Update Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.Workspaces, and Microsoft.CodeAnalysis.Analyzers to latest
  • Split the code fixes into a separate project

Reason for change

We should update these dependencies as they're old. Unfortunately, doing so hits this build error:

RS1038: Compiler extensions should be implemented in assemblies with compiler-provided references
Types which implement compiler extension points should not be declared in assemblies that contain references to assemblies which are not provided by all compilation scenarios. Doing so may cause the feature to behave unpredictably.

tl;dr; codefixes need to be in a separate assembly to analyzers and source generators 🙄

Implementation details

  • Bump the versions
  • Extract diagnostic ID definitions to standalone types so they can be easily linked to
  • Move the code fixes to a separate project
  • Add links back to the analyzer project where appropriate
  • Minor tweaks so everything still builds

Test coverage

As long as the unit tests pass I think we're good

Other details

@andrewlock andrewlock requested review from a team as code owners November 24, 2025 17:40
@andrewlock andrewlock added dependencies Pull requests that update a dependency file area:tools area:dependabot dependabot updates labels Nov 24, 2025
Copy link
Member Author

Choose a reason for hiding this comment

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

These are all just moving from the analyzer project to the code fix project

Copy link
Member Author

Choose a reason for hiding this comment

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

This was a public type provided in the analyzers package, so just basically vendoring the minimum amount needed here

<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.4" PrivateAssets="all" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.8.0" PrivateAssets="all" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.8.0" PrivateAssets="all" />
Copy link
Member Author

Choose a reason for hiding this comment

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

This is the important bit, removing the reference to Microsoft.CodeAnalysis.CSharp.Workspaces from this project

@dd-trace-dotnet-ci-bot
Copy link

dd-trace-dotnet-ci-bot bot commented Nov 24, 2025

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing This PR (7860) and master.

✅ No regressions detected - check the details below

Full Metrics Comparison

FakeDbCommand

Metric Master (Mean ± 95% CI) Current (Mean ± 95% CI) Change Status
.NET Framework 4.8 - Baseline
duration74.85 ± (74.96 - 75.64) ms74.87 ± (74.87 - 75.65) ms+0.0%✅⬆️
.NET Framework 4.8 - Bailout
duration80.31 ± (79.99 - 80.61) ms78.79 ± (78.77 - 79.56) ms-1.9%
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1074.43 ± (1074.43 - 1084.30) ms1059.71 ± (1058.22 - 1066.53) ms-1.4%
.NET Core 3.1 - Baseline
process.internal_duration_ms23.04 ± (22.95 - 23.12) ms22.67 ± (22.60 - 22.74) ms-1.6%
process.time_to_main_ms88.54 ± (88.17 - 88.90) ms86.17 ± (85.84 - 86.50) ms-2.7%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.93 ± (10.93 - 10.94) MB10.91 ± (10.91 - 10.91) MB-0.2%
runtime.dotnet.threads.count12 ± (12 - 12)12 ± (12 - 12)+0.0%
.NET Core 3.1 - Bailout
process.internal_duration_ms23.39 ± (23.26 - 23.52) ms22.76 ± (22.69 - 22.82) ms-2.7%
process.time_to_main_ms91.29 ± (90.73 - 91.85) ms88.68 ± (88.29 - 89.08) ms-2.9%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.97 ± (10.97 - 10.98) MB10.96 ± (10.96 - 10.96) MB-0.1%
runtime.dotnet.threads.count13 ± (13 - 13)13 ± (13 - 13)+0.0%
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms222.62 ± (221.20 - 224.03) ms221.82 ± (220.61 - 223.03) ms-0.4%
process.time_to_main_ms501.21 ± (500.01 - 502.42) ms497.82 ± (496.80 - 498.84) ms-0.7%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed47.89 ± (47.87 - 47.91) MB47.91 ± (47.89 - 47.93) MB+0.0%✅⬆️
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)+0.1%✅⬆️
.NET 6 - Baseline
process.internal_duration_ms21.89 ± (21.83 - 21.95) ms21.83 ± (21.77 - 21.90) ms-0.3%
process.time_to_main_ms77.12 ± (76.85 - 77.38) ms76.18 ± (75.84 - 76.52) ms-1.2%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.62 ± (10.62 - 10.63) MB10.62 ± (10.61 - 10.62) MB-0.1%
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 6 - Bailout
process.internal_duration_ms21.83 ± (21.76 - 21.91) ms21.62 ± (21.56 - 21.68) ms-1.0%
process.time_to_main_ms78.86 ± (78.43 - 79.29) ms77.43 ± (77.07 - 77.79) ms-1.8%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.67 ± (10.67 - 10.67) MB10.72 ± (10.72 - 10.73) MB+0.5%✅⬆️
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms213.67 ± (212.58 - 214.76) ms211.55 ± (210.56 - 212.54) ms-1.0%
process.time_to_main_ms470.26 ± (469.31 - 471.21) ms466.56 ± (465.50 - 467.61) ms-0.8%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed48.07 ± (48.04 - 48.09) MB48.06 ± (48.04 - 48.08) MB-0.0%
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)+0.0%✅⬆️
.NET 8 - Baseline
process.internal_duration_ms20.07 ± (20.00 - 20.13) ms19.93 ± (19.86 - 20.00) ms-0.7%
process.time_to_main_ms76.36 ± (76.04 - 76.69) ms75.05 ± (74.71 - 75.39) ms-1.7%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.67 ± (7.66 - 7.68) MB7.64 ± (7.63 - 7.65) MB-0.4%
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 8 - Bailout
process.internal_duration_ms19.99 ± (19.93 - 20.05) ms19.96 ± (19.89 - 20.02) ms-0.2%
process.time_to_main_ms77.53 ± (77.21 - 77.85) ms76.91 ± (76.55 - 77.27) ms-0.8%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.71 ± (7.71 - 7.72) MB7.69 ± (7.68 - 7.70) MB-0.3%
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms195.14 ± (194.16 - 196.12) ms191.81 ± (190.82 - 192.81) ms-1.7%
process.time_to_main_ms458.74 ± (457.81 - 459.67) ms454.58 ± (453.65 - 455.50) ms-0.9%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed36.49 ± (36.45 - 36.53) MB36.43 ± (36.39 - 36.47) MB-0.2%
runtime.dotnet.threads.count27 ± (27 - 27)27 ± (27 - 27)+0.2%✅⬆️

HttpMessageHandler

Metric Master (Mean ± 95% CI) Current (Mean ± 95% CI) Change Status
.NET Framework 4.8 - Baseline
duration192.86 ± (192.88 - 193.63) ms192.74 ± (192.71 - 193.52) ms-0.1%
.NET Framework 4.8 - Bailout
duration196.21 ± (196.18 - 196.62) ms196.87 ± (196.65 - 197.43) ms+0.3%✅⬆️
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1109.28 ± (1112.56 - 1121.66) ms1119.19 ± (1126.43 - 1137.58) ms+0.9%✅⬆️
.NET Core 3.1 - Baseline
process.internal_duration_ms188.04 ± (187.60 - 188.48) ms188.66 ± (188.31 - 189.01) ms+0.3%✅⬆️
process.time_to_main_ms80.64 ± (80.43 - 80.84) ms81.25 ± (81.01 - 81.50) ms+0.8%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.14 ± (16.11 - 16.17) MB16.06 ± (16.03 - 16.09) MB-0.5%
runtime.dotnet.threads.count19 ± (19 - 20)20 ± (20 - 20)+1.1%✅⬆️
.NET Core 3.1 - Bailout
process.internal_duration_ms188.03 ± (187.68 - 188.38) ms188.72 ± (188.30 - 189.13) ms+0.4%✅⬆️
process.time_to_main_ms81.97 ± (81.84 - 82.09) ms82.52 ± (82.35 - 82.69) ms+0.7%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.18 ± (16.14 - 16.21) MB16.18 ± (16.15 - 16.20) MB-0.0%
runtime.dotnet.threads.count21 ± (21 - 21)21 ± (21 - 21)+0.7%✅⬆️
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms408.99 ± (405.98 - 412.00) ms395.77 ± (393.36 - 398.18) ms-3.2%
process.time_to_main_ms473.16 ± (471.91 - 474.40) ms474.03 ± (473.35 - 474.71) ms+0.2%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed58.94 ± (58.84 - 59.03) MB58.45 ± (58.31 - 58.59) MB-0.8%
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)+0.1%✅⬆️
.NET 6 - Baseline
process.internal_duration_ms217.21 ± (215.39 - 219.02) ms192.53 ± (192.18 - 192.87) ms-11.4%
process.time_to_main_ms86.16 ± (84.75 - 87.58) ms70.28 ± (70.09 - 70.47) ms-18.4%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.18 ± (16.15 - 16.20) MB16.35 ± (16.28 - 16.41) MB+1.1%✅⬆️
runtime.dotnet.threads.count20 ± (20 - 20)19 ± (19 - 19)-3.6%
.NET 6 - Bailout
process.internal_duration_ms191.87 ± (191.51 - 192.24) ms191.08 ± (190.80 - 191.36) ms-0.4%
process.time_to_main_ms71.30 ± (71.14 - 71.46) ms70.96 ± (70.87 - 71.05) ms-0.5%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.17 ± (16.06 - 16.27) MB15.95 ± (15.77 - 16.12) MB-1.4%
runtime.dotnet.threads.count19 ± (19 - 20)19 ± (19 - 19)-1.9%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms404.19 ± (402.45 - 405.93) ms406.78 ± (404.88 - 408.68) ms+0.6%✅⬆️
process.time_to_main_ms441.00 ± (440.42 - 441.58) ms441.00 ± (440.44 - 441.56) ms-0.0%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed58.93 ± (58.78 - 59.08) MB59.10 ± (58.97 - 59.24) MB+0.3%✅⬆️
runtime.dotnet.threads.count30 ± (29 - 30)30 ± (29 - 30)+0.0%✅⬆️
.NET 8 - Baseline
process.internal_duration_ms190.46 ± (190.11 - 190.81) ms190.88 ± (190.61 - 191.14) ms+0.2%✅⬆️
process.time_to_main_ms69.59 ± (69.42 - 69.76) ms69.68 ± (69.46 - 69.91) ms+0.1%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.78 ± (11.74 - 11.81) MB11.73 ± (11.70 - 11.75) MB-0.4%
runtime.dotnet.threads.count18 ± (18 - 18)18 ± (18 - 18)+0.2%✅⬆️
.NET 8 - Bailout
process.internal_duration_ms189.51 ± (189.17 - 189.85) ms190.96 ± (190.57 - 191.35) ms+0.8%✅⬆️
process.time_to_main_ms70.46 ± (70.35 - 70.56) ms70.67 ± (70.51 - 70.82) ms+0.3%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.82 ± (11.78 - 11.86) MB11.79 ± (11.76 - 11.82) MB-0.2%
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (19 - 19)+0.6%✅⬆️
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms365.46 ± (364.06 - 366.86) ms366.18 ± (364.80 - 367.57) ms+0.2%✅⬆️
process.time_to_main_ms428.53 ± (427.84 - 429.22) ms428.59 ± (428.10 - 429.08) ms+0.0%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed47.85 ± (47.81 - 47.88) MB47.89 ± (47.87 - 47.92) MB+0.1%✅⬆️
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)+0.4%✅⬆️
Comparison explanation

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 highlighted 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).

Duration charts
FakeDbCommand (.NET Framework 4.8)
gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7860) - mean (75ms)  : 69, 81
    master - mean (75ms)  : 70, 80

    section Bailout
    This PR (7860) - mean (79ms)  : 73, 85
    master - mean (80ms)  : 76, 85

    section CallTarget+Inlining+NGEN
    This PR (7860) - mean (1,062ms)  : 1003, 1122
    master - mean (1,079ms)  : 1004, 1155

Loading
FakeDbCommand (.NET Core 3.1)
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7860) - mean (116ms)  : 110, 122
    master - mean (120ms)  : 112, 127

    section Bailout
    This PR (7860) - mean (119ms)  : 110, 128
    master - mean (123ms)  : 115, 131

    section CallTarget+Inlining+NGEN
    This PR (7860) - mean (755ms)  : 722, 787
    master - mean (764ms)  : 731, 796

Loading
FakeDbCommand (.NET 6)
gantt
    title Execution time (ms) FakeDbCommand (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7860) - mean (105ms)  : 98, 111
    master - mean (106ms)  : 100, 112

    section Bailout
    This PR (7860) - mean (106ms)  : 99, 113
    master - mean (108ms)  : 102, 114

    section CallTarget+Inlining+NGEN
    This PR (7860) - mean (706ms)  : 676, 736
    master - mean (721ms)  : 694, 747

Loading
FakeDbCommand (.NET 8)
gantt
    title Execution time (ms) FakeDbCommand (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7860) - mean (103ms)  : 97, 110
    master - mean (105ms)  : 99, 112

    section Bailout
    This PR (7860) - mean (105ms)  : 97, 113
    master - mean (106ms)  : 100, 112

    section CallTarget+Inlining+NGEN
    This PR (7860) - mean (678ms)  : 648, 707
    master - mean (696ms)  : 667, 725

Loading
HttpMessageHandler (.NET Framework 4.8)
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7860) - mean (193ms)  : 189, 197
    master - mean (193ms)  : 189, 197

    section Bailout
    This PR (7860) - mean (197ms)  : 193, 201
    master - mean (196ms)  : 194, 199

    section CallTarget+Inlining+NGEN
    This PR (7860) - mean (1,132ms)  : 1045, 1219
    master - mean (1,117ms)  : 1052, 1183

Loading
HttpMessageHandler (.NET Core 3.1)
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7860) - mean (279ms)  : 273, 284
    master - mean (278ms)  : 271, 284

    section Bailout
    This PR (7860) - mean (279ms)  : 273, 286
    master - mean (278ms)  : 274, 282

    section CallTarget+Inlining+NGEN
    This PR (7860) - mean (909ms)  : 868, 950
    master - mean (914ms)  : 849, 978

Loading
HttpMessageHandler (.NET 6)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7860) - mean (271ms)  : 265, 276
    master - mean (313ms)  : 265, 361

    section Bailout
    This PR (7860) - mean (270ms)  : 267, 274
    master - mean (271ms)  : 264, 278

    section CallTarget+Inlining+NGEN
    This PR (7860) - mean (881ms)  : 850, 913
    master - mean (878ms)  : 843, 913

Loading
HttpMessageHandler (.NET 8)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7860) - mean (270ms)  : 266, 274
    master - mean (270ms)  : 265, 275

    section Bailout
    This PR (7860) - mean (271ms)  : 266, 277
    master - mean (270ms)  : 266, 274

    section CallTarget+Inlining+NGEN
    This PR (7860) - mean (827ms)  : 807, 848
    master - mean (824ms)  : 807, 842

Loading

@andrewlock andrewlock force-pushed the andrew/bump-analyzers-dependencies branch from 2e0d9f4 to e3fbf99 Compare November 25, 2025 17:18
@pr-commenter
Copy link

pr-commenter bot commented Nov 25, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #7860 compared to master:

  • 3 benchmarks are faster, with geometric mean 1.172
  • 1 benchmarks are slower, with geometric mean 1.125
  • 7 benchmarks have fewer allocations
  • 8 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 #7860

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑netcoreapp3.1 5.68 KB 5.73 KB 44 B 0.77%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 10.9μs 57.2ns 297ns 0 0 0 5.53 KB
master StartStopWithChild netcoreapp3.1 13.5μs 34.9ns 126ns 0 0 0 5.68 KB
master StartStopWithChild net472 21.6μs 118ns 710ns 0.888 0.222 0 6.09 KB
#7860 StartStopWithChild net6.0 10.6μs 59.7ns 405ns 0 0 0 5.5 KB
#7860 StartStopWithChild netcoreapp3.1 13.7μs 69.6ns 311ns 0 0 0 5.73 KB
#7860 StartStopWithChild net472 22.2μs 122ns 688ns 1.07 0.321 0.107 6.07 KB
Benchmarks.Trace.AgentWriterBenchmark - Unknown 🤷 Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 N/A N/A N/A NaN NaN NaN 0 b
master WriteAndFlushEnrichedTraces netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
master WriteAndFlushEnrichedTraces net472 N/A N/A N/A NaN NaN NaN 0 b
#7860 WriteAndFlushEnrichedTraces net6.0 N/A N/A N/A NaN NaN NaN 0 b
#7860 WriteAndFlushEnrichedTraces netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#7860 WriteAndFlushEnrichedTraces net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 1.07μs 0.68ns 2.54ns 0 0 0 1.22 KB
master AllCycleSimpleBody netcoreapp3.1 1.38μs 7.81ns 55.8ns 0 0 0 1.2 KB
master AllCycleSimpleBody net472 1.07μs 0.45ns 1.69ns 0.192 0 0 1.23 KB
master AllCycleMoreComplexBody net6.0 7.27μs 8.12ns 30.4ns 0 0 0 4.72 KB
master AllCycleMoreComplexBody netcoreapp3.1 8.76μs 46.1ns 226ns 0 0 0 4.62 KB
master AllCycleMoreComplexBody net472 7.56μs 5.77ns 22.4ns 0.717 0 0 4.74 KB
master ObjectExtractorSimpleBody net6.0 320ns 1.82ns 12.1ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 393ns 2.1ns 10.7ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 299ns 0.218ns 0.815ns 0.0443 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.36μs 29.6ns 119ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.78μs 34ns 132ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.67μs 1.84ns 7.11ns 0.6 0 0 3.8 KB
#7860 AllCycleSimpleBody net6.0 1.07μs 6.07ns 45ns 0 0 0 1.22 KB
#7860 AllCycleSimpleBody netcoreapp3.1 1.43μs 7.67ns 44.1ns 0 0 0 1.2 KB
#7860 AllCycleSimpleBody net472 1.05μs 0.286ns 1.07ns 0.193 0 0 1.23 KB
#7860 AllCycleMoreComplexBody net6.0 7.11μs 10.2ns 39.4ns 0 0 0 4.72 KB
#7860 AllCycleMoreComplexBody netcoreapp3.1 9.04μs 45.4ns 208ns 0 0 0 4.62 KB
#7860 AllCycleMoreComplexBody net472 7.62μs 8.21ns 31.8ns 0.729 0 0 4.74 KB
#7860 ObjectExtractorSimpleBody net6.0 329ns 1.82ns 11.2ns 0 0 0 280 B
#7860 ObjectExtractorSimpleBody netcoreapp3.1 397ns 1.9ns 7.83ns 0 0 0 272 B
#7860 ObjectExtractorSimpleBody net472 301ns 0.264ns 0.988ns 0.0438 0 0 281 B
#7860 ObjectExtractorMoreComplexBody net6.0 6.38μs 33.4ns 160ns 0 0 0 3.78 KB
#7860 ObjectExtractorMoreComplexBody netcoreapp3.1 7.88μs 40.3ns 180ns 0 0 0 3.69 KB
#7860 ObjectExtractorMoreComplexBody net472 6.67μs 5.74ns 22.2ns 0.6 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 79.3μs 345ns 1.29μs 0 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 97.5μs 273ns 1.06μs 0 0 0 32.4 KB
master EncodeArgs net472 110μs 28.3ns 110ns 4.97 0 0 32.51 KB
master EncodeLegacyArgs net6.0 149μs 17.2ns 64.5ns 0 0 0 2.15 KB
master EncodeLegacyArgs netcoreapp3.1 198μs 449ns 1.74μs 0 0 0 2.14 KB
master EncodeLegacyArgs net472 262μs 46ns 178ns 0 0 0 2.16 KB
#7860 EncodeArgs net6.0 76.8μs 20.8ns 80.6ns 0 0 0 32.4 KB
#7860 EncodeArgs netcoreapp3.1 98.8μs 221ns 857ns 0 0 0 32.4 KB
#7860 EncodeArgs net472 110μs 14.8ns 57.5ns 4.95 0 0 32.51 KB
#7860 EncodeLegacyArgs net6.0 145μs 43.8ns 169ns 0 0 0 2.15 KB
#7860 EncodeLegacyArgs netcoreapp3.1 196μs 47.8ns 179ns 0 0 0 2.14 KB
#7860 EncodeLegacyArgs net472 267μs 24.4ns 94.6ns 0 0 0 2.16 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7860

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmark‑net472 0 b 8.19 KB 8.19 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmarkWithAttack‑net472 0 b 8.19 KB 8.19 KB

Fewer allocations 🎉 in #7860

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmark‑net6.0 5.48 KB 5.14 KB -336 B -6.13%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 430μs 1.21μs 4.35μs 0 0 0 5.48 KB
master RunWafRealisticBenchmark netcoreapp3.1 527μs 11.5μs 107μs 0 0 0 4.58 KB
master RunWafRealisticBenchmark net472 501μs 603ns 2.26μs 0 0 0 0 b
master RunWafRealisticBenchmarkWithAttack net6.0 318μs 794ns 2.75μs 0 0 0 3.17 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 377μs 3.98μs 38.6μs 0 0 0 2.32 KB
master RunWafRealisticBenchmarkWithAttack net472 371μs 192ns 691ns 0 0 0 0 b
#7860 RunWafRealisticBenchmark net6.0 434μs 2.42μs 15.3μs 0 0 0 5.14 KB
#7860 RunWafRealisticBenchmark netcoreapp3.1 447μs 1.02μs 3.53μs 0 0 0 4.58 KB
#7860 RunWafRealisticBenchmark net472 502μs 250ns 903ns 0 0 0 8.19 KB
#7860 RunWafRealisticBenchmarkWithAttack net6.0 314μs 585ns 2.11μs 0 0 0 3.17 KB
#7860 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 335μs 1.19μs 5.85μs 0 0 0 2.32 KB
#7860 RunWafRealisticBenchmarkWithAttack net472 380μs 802ns 3μs 0 0 0 8.19 KB
Benchmarks.Trace.AspNetCoreBenchmark - Faster 🎉 Same allocations ✔️

Faster 🎉 in #7860

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AspNetCoreBenchmark.SendRequest‑net6.0 1.266 76,894.58 60,718.90

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 77.4μs 242ns 939ns 0 0 0 14.52 KB
master SendRequest netcoreapp3.1 71.5μs 376ns 1.84μs 0 0 0 17.42 KB
master SendRequest net472 0.00167ns 0.00105ns 0.00408ns 0 0 0 0 b
#7860 SendRequest net6.0 60.8μs 91.2ns 353ns 0 0 0 14.52 KB
#7860 SendRequest netcoreapp3.1 73μs 223ns 804ns 0 0 0 17.42 KB
#7860 SendRequest net472 0.156ns 0.00319ns 0.0124ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Faster 🎉 More allocations ⚠️

Faster 🎉 in #7860

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net6.0 1.120 1,556,850.00 1,390,200.00

More allocations ⚠️ in #7860

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net472 0 b 8.19 KB 8.19 KB
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net472 0 b 8.19 KB 8.19 KB

Fewer allocations 🎉 in #7860

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net6.0 352 B 304 B -48 B -13.64%
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0 640 B 304 B -336 B -52.50%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master OriginalCharSlice net6.0 2.01ms 580ns 2.09μs 0 0 0 640.3 KB
master OriginalCharSlice netcoreapp3.1 3.92ms 1.18μs 4.58μs 0 0 0 640.1 KB
master OriginalCharSlice net472 2.67ms 1.12μs 4.05μs 0 0 0 647.17 KB
master OptimizedCharSlice net6.0 1.56ms 1.06μs 3.97μs 0 0 0 352 B
master OptimizedCharSlice netcoreapp3.1 2.76ms 661ns 2.47μs 0 0 0 104 B
master OptimizedCharSlice net472 2.04ms 1.65μs 6.38μs 0 0 0 0 b
master OptimizedCharSliceWithPool net6.0 1.16ms 1.1μs 4.11μs 0 0 0 640 B
master OptimizedCharSliceWithPool netcoreapp3.1 1.91ms 1.38μs 5.36μs 0 0 0 104 B
master OptimizedCharSliceWithPool net472 1.13ms 739ns 2.86μs 0 0 0 0 b
#7860 OriginalCharSlice net6.0 1.99ms 466ns 1.68μs 0 0 0 640.98 KB
#7860 OriginalCharSlice netcoreapp3.1 3.89ms 497ns 1.79μs 0 0 0 640.1 KB
#7860 OriginalCharSlice net472 2.58ms 552ns 1.99μs 0 0 0 647.17 KB
#7860 OptimizedCharSlice net6.0 1.39ms 568ns 2.05μs 0 0 0 304 B
#7860 OptimizedCharSlice netcoreapp3.1 2.77ms 1.2μs 4.34μs 0 0 0 104 B
#7860 OptimizedCharSlice net472 2ms 718ns 2.69μs 0 0 0 8.19 KB
#7860 OptimizedCharSliceWithPool net6.0 1.07ms 901ns 3.37μs 0 0 0 304 B
#7860 OptimizedCharSliceWithPool netcoreapp3.1 1.96ms 611ns 2.29μs 0 0 0 104 B
#7860 OptimizedCharSliceWithPool net472 1.14ms 793ns 3.07μs 0 0 0 8.19 KB
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7860

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 41.83 KB 42.58 KB 758 B 1.81%
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 55.63 KB 56.42 KB 794 B 1.43%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 771μs 3.65μs 14.1μs 0 0 0 41.83 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 685μs 1.01μs 3.77μs 0 0 0 41.94 KB
master WriteAndFlushEnrichedTraces net472 867μs 4.4μs 21.6μs 4.46 0 0 55.63 KB
#7860 WriteAndFlushEnrichedTraces net6.0 733μs 4.19μs 33.3μs 0 0 0 42.58 KB
#7860 WriteAndFlushEnrichedTraces netcoreapp3.1 696μs 3.88μs 23.9μs 0 0 0 41.97 KB
#7860 WriteAndFlushEnrichedTraces net472 940μs 1.83μs 7.07μs 8.33 0 0 56.42 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.86μs 6.69ns 25ns 0 0 0 1.02 KB
master ExecuteNonQuery netcoreapp3.1 2.58μs 13ns 59.7ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.79μs 6.36ns 24.6ns 0.154 0 0 987 B
#7860 ExecuteNonQuery net6.0 1.89μs 3.89ns 15.1ns 0 0 0 1.02 KB
#7860 ExecuteNonQuery netcoreapp3.1 2.62μs 12.8ns 52.7ns 0 0 0 1.02 KB
#7860 ExecuteNonQuery net472 2.81μs 2.11ns 8.17ns 0.156 0 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.77μs 2.66ns 10.3ns 0 0 0 1.03 KB
master CallElasticsearch netcoreapp3.1 2.32μs 7.37ns 28.5ns 0 0 0 1.03 KB
master CallElasticsearch net472 3.49μs 7.93ns 30.7ns 0.159 0 0 1.04 KB
master CallElasticsearchAsync net6.0 1.8μs 9.28ns 41.5ns 0 0 0 1.01 KB
master CallElasticsearchAsync netcoreapp3.1 2.38μs 11.4ns 48.5ns 0 0 0 1.08 KB
master CallElasticsearchAsync net472 3.73μs 5.03ns 19.5ns 0.166 0 0 1.1 KB
#7860 CallElasticsearch net6.0 1.71μs 8.46ns 37.9ns 0 0 0 1.03 KB
#7860 CallElasticsearch netcoreapp3.1 2.39μs 7.33ns 28.4ns 0 0 0 1.03 KB
#7860 CallElasticsearch net472 3.45μs 1.43ns 5.34ns 0.156 0 0 1.04 KB
#7860 CallElasticsearchAsync net6.0 1.82μs 8.28ns 33.1ns 0 0 0 1.01 KB
#7860 CallElasticsearchAsync netcoreapp3.1 2.42μs 10.5ns 39.4ns 0 0 0 1.08 KB
#7860 CallElasticsearchAsync net472 3.65μs 3.5ns 13.1ns 0.165 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.94μs 4.71ns 18.3ns 0 0 0 952 B
master ExecuteAsync netcoreapp3.1 2.45μs 11.9ns 49.1ns 0 0 0 952 B
master ExecuteAsync net472 2.61μs 5.42ns 21ns 0.142 0 0 915 B
#7860 ExecuteAsync net6.0 1.92μs 6.23ns 23.3ns 0 0 0 952 B
#7860 ExecuteAsync netcoreapp3.1 2.36μs 7.37ns 28.5ns 0 0 0 952 B
#7860 ExecuteAsync net472 2.6μs 1.47ns 5.69ns 0.144 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.99μs 21.3ns 82.5ns 0 0 0 2.36 KB
master SendAsync netcoreapp3.1 8.59μs 32.3ns 125ns 0 0 0 2.9 KB
master SendAsync net472 12.2μs 9.13ns 34.2ns 0.486 0 0 3.18 KB
#7860 SendAsync net6.0 7.05μs 6ns 22.4ns 0 0 0 2.36 KB
#7860 SendAsync netcoreapp3.1 8.58μs 16.3ns 63.3ns 0 0 0 2.9 KB
#7860 SendAsync net472 12.2μs 13.5ns 52.2ns 0.487 0 0 3.18 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Slower ⚠️ More allocations ⚠️

Slower ⚠️ in #7860

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 1.125 491,250.00 552,600.00

Faster 🎉 in #7860

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 1.135 504,600.00 444,650.00

More allocations ⚠️ in #7860

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 258.27 KB 276.78 KB 18.51 KB 7.17%

Fewer allocations 🎉 in #7860

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 43.19 KB 42.73 KB -464 B -1.07%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 45.32 KB 44.52 KB -800 B -1.77%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net472 289.19 KB 278.53 KB -10.66 KB -3.69%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 275.34 KB 255.29 KB -20.06 KB -7.28%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 50.8μs 414ns 3.97μs 0 0 0 45.32 KB
master StringConcatBenchmark netcoreapp3.1 50μs 291ns 2.23μs 0 0 0 43.19 KB
master StringConcatBenchmark net472 57.2μs 157ns 586ns 0 0 0 57.34 KB
master StringConcatAspectBenchmark net6.0 504μs 1.69μs 8.08μs 0 0 0 275.34 KB
master StringConcatAspectBenchmark netcoreapp3.1 491μs 1.28μs 6.38μs 0 0 0 258.27 KB
master StringConcatAspectBenchmark net472 411μs 2.2μs 11.6μs 0 0 0 289.19 KB
#7860 StringConcatBenchmark net6.0 47μs 426ns 4.04μs 0 0 0 44.52 KB
#7860 StringConcatBenchmark netcoreapp3.1 50.2μs 294ns 2.48μs 0 0 0 42.73 KB
#7860 StringConcatBenchmark net472 56.6μs 275ns 1.1μs 0 0 0 57.34 KB
#7860 StringConcatAspectBenchmark net6.0 447μs 2.36μs 11.6μs 0 0 0 255.29 KB
#7860 StringConcatAspectBenchmark netcoreapp3.1 553μs 1.71μs 5.93μs 0 0 0 276.78 KB
#7860 StringConcatAspectBenchmark net472 407μs 2.24μs 12.7μs 0 0 0 278.53 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.77μs 3.78ns 14.6ns 0 0 0 1.7 KB
master EnrichedLog netcoreapp3.1 3.57μs 18.9ns 98.4ns 0 0 0 1.7 KB
master EnrichedLog net472 4μs 5.03ns 19.5ns 0.241 0 0 1.64 KB
#7860 EnrichedLog net6.0 2.76μs 13.2ns 73.5ns 0 0 0 1.7 KB
#7860 EnrichedLog netcoreapp3.1 3.6μs 18.6ns 92.9ns 0 0 0 1.7 KB
#7860 EnrichedLog net472 3.91μs 4.83ns 18.7ns 0.252 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 128μs 623ns 2.65μs 0 0 0 4.31 KB
master EnrichedLog netcoreapp3.1 129μs 322ns 1.16μs 0 0 0 4.31 KB
master EnrichedLog net472 168μs 137ns 530ns 0 0 0 4.52 KB
#7860 EnrichedLog net6.0 123μs 89.7ns 336ns 0 0 0 4.31 KB
#7860 EnrichedLog netcoreapp3.1 130μs 616ns 2.46μs 0 0 0 4.31 KB
#7860 EnrichedLog net472 168μs 165ns 595ns 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 5.07μs 8.02ns 31.1ns 0 0 0 2.26 KB
master EnrichedLog netcoreapp3.1 6.8μs 27.1ns 105ns 0 0 0 2.26 KB
master EnrichedLog net472 7.78μs 7.7ns 29.8ns 0.307 0 0 2.08 KB
#7860 EnrichedLog net6.0 5.1μs 21.2ns 82.2ns 0 0 0 2.26 KB
#7860 EnrichedLog netcoreapp3.1 6.92μs 16.5ns 63.8ns 0 0 0 2.26 KB
#7860 EnrichedLog net472 7.59μs 6.61ns 25.6ns 0.306 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 1.95μs 9.1ns 34.1ns 0 0 0 1.2 KB
master SendReceive netcoreapp3.1 2.73μs 8.53ns 33ns 0 0 0 1.2 KB
master SendReceive net472 3.09μs 5.53ns 21.4ns 0.185 0 0 1.2 KB
#7860 SendReceive net6.0 1.98μs 9.82ns 43.9ns 0 0 0 1.2 KB
#7860 SendReceive netcoreapp3.1 2.64μs 13ns 53.5ns 0 0 0 1.2 KB
#7860 SendReceive net472 3.09μs 2.05ns 7.68ns 0.185 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.4μs 5.62ns 21.8ns 0 0 0 1.58 KB
master EnrichedLog netcoreapp3.1 5.86μs 10.4ns 40.2ns 0 0 0 1.63 KB
master EnrichedLog net472 6.61μs 8.71ns 33.7ns 0.295 0 0 2.03 KB
#7860 EnrichedLog net6.0 4.33μs 4.16ns 15.6ns 0 0 0 1.58 KB
#7860 EnrichedLog netcoreapp3.1 5.79μs 25.1ns 97.1ns 0 0 0 1.63 KB
#7860 EnrichedLog net472 6.37μs 5.51ns 19.9ns 0.317 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 806ns 0.304ns 1.18ns 0 0 0 576 B
master StartFinishSpan netcoreapp3.1 981ns 5.14ns 24.7ns 0 0 0 576 B
master StartFinishSpan net472 934ns 0.239ns 0.924ns 0.0899 0 0 578 B
master StartFinishScope net6.0 955ns 3.17ns 12.3ns 0 0 0 696 B
master StartFinishScope netcoreapp3.1 1.14μs 6.08ns 31ns 0 0 0 696 B
master StartFinishScope net472 1.1μs 0.221ns 0.828ns 0.1 0 0 658 B
master StartFinishTwoScopes net6.0 1.82μs 0.764ns 2.96ns 0 0 0 1.19 KB
master StartFinishTwoScopes netcoreapp3.1 2.26μs 11.3ns 49.2ns 0 0 0 1.19 KB
master StartFinishTwoScopes net472 2.12μs 2.43ns 9.42ns 0.17 0 0 1.08 KB
#7860 StartFinishSpan net6.0 802ns 1.38ns 5.33ns 0 0 0 576 B
#7860 StartFinishSpan netcoreapp3.1 979ns 4.84ns 21.6ns 0 0 0 576 B
#7860 StartFinishSpan net472 892ns 0.312ns 1.21ns 0.0895 0 0 578 B
#7860 StartFinishScope net6.0 988ns 0.259ns 1ns 0 0 0 696 B
#7860 StartFinishScope netcoreapp3.1 1.17μs 6.07ns 30.3ns 0 0 0 696 B
#7860 StartFinishScope net472 1.1μs 0.159ns 0.572ns 0.0994 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 5.2ns 20.8ns 0 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 1.41μs 6.92ns 29.4ns 0 0 0 696 B
master RunOnMethodBegin net472 1.46μs 0.161ns 0.601ns 0.102 0 0 658 B
#7860 RunOnMethodBegin net6.0 1.08μs 5.38ns 24.6ns 0 0 0 696 B
#7860 RunOnMethodBegin netcoreapp3.1 1.42μs 7.4ns 36.3ns 0 0 0 696 B
#7860 RunOnMethodBegin net472 1.44μs 1.06ns 3.95ns 0.101 0 0 658 B

@lucaspimentel lucaspimentel requested a review from a team November 26, 2025 18:53
@andrewlock andrewlock force-pushed the andrew/bump-analyzers-dependencies branch from e3fbf99 to f659a0f Compare November 27, 2025 09:53
@andrewlock andrewlock enabled auto-merge (squash) November 27, 2025 11:06
@andrewlock andrewlock merged commit ab20e24 into master Nov 27, 2025
150 checks passed
@andrewlock andrewlock deleted the andrew/bump-analyzers-dependencies branch November 27, 2025 11:42
@github-actions github-actions bot added this to the vNext-v3 milestone Nov 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:dependabot dependabot updates area:tools dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants