Skip to content

Conversation

@rithikanarayan
Copy link
Contributor

Summary of changes

Reason for change

Implementation details

Test coverage

Other details

@datadog-official

This comment has been minimized.

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

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

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing This PR (7798) 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
duration75.48 ± (75.37 - 76.03) ms75.09 ± (75.24 - 75.87) ms-0.5%
.NET Framework 4.8 - Bailout
duration78.31 ± (78.28 - 78.89) ms79.37 ± (79.08 - 79.67) ms+1.4%✅⬆️
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1111.73 ± (1116.18 - 1126.32) ms1114.02 ± (1115.40 - 1124.93) ms+0.2%✅⬆️
.NET Core 3.1 - Baseline
process.internal_duration_ms22.82 ± (22.74 - 22.90) ms22.78 ± (22.70 - 22.86) ms-0.2%
process.time_to_main_ms87.41 ± (87.09 - 87.74) ms87.05 ± (86.72 - 87.38) ms-0.4%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.92 ± (10.92 - 10.93) MB10.91 ± (10.90 - 10.91) MB-0.1%
runtime.dotnet.threads.count12 ± (12 - 12)12 ± (12 - 12)+0.0%
.NET Core 3.1 - Bailout
process.internal_duration_ms22.91 ± (22.85 - 22.98) ms22.70 ± (22.63 - 22.77) ms-0.9%
process.time_to_main_ms90.15 ± (89.79 - 90.50) ms88.70 ± (88.31 - 89.08) ms-1.6%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.97 ± (10.96 - 10.97) MB10.94 ± (10.94 - 10.95) MB-0.2%
runtime.dotnet.threads.count13 ± (13 - 13)13 ± (13 - 13)+0.0%
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms220.70 ± (219.27 - 222.13) ms219.45 ± (218.05 - 220.85) ms-0.6%
process.time_to_main_ms551.38 ± (550.08 - 552.69) ms546.97 ± (545.77 - 548.17) ms-0.8%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed52.65 ± (52.63 - 52.67) MB52.48 ± (52.45 - 52.50) MB-0.3%
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)+0.0%✅⬆️
.NET 6 - Baseline
process.internal_duration_ms21.78 ± (21.71 - 21.84) ms21.62 ± (21.55 - 21.68) ms-0.7%
process.time_to_main_ms76.34 ± (76.01 - 76.68) ms75.48 ± (75.14 - 75.82) ms-1.1%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.59 ± (10.59 - 10.60) MB10.62 ± (10.62 - 10.62) MB+0.3%✅⬆️
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 6 - Bailout
process.internal_duration_ms21.87 ± (21.80 - 21.94) ms21.55 ± (21.47 - 21.62) ms-1.5%
process.time_to_main_ms78.35 ± (78.00 - 78.69) ms76.92 ± (76.59 - 77.25) ms-1.8%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.68 ± (10.67 - 10.68) MB10.72 ± (10.72 - 10.73) MB+0.4%✅⬆️
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms209.04 ± (207.69 - 210.39) ms206.62 ± (205.25 - 208.00) ms-1.2%
process.time_to_main_ms522.47 ± (521.19 - 523.74) ms508.42 ± (507.45 - 509.39) ms-2.7%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed51.72 ± (51.70 - 51.74) MB51.61 ± (51.58 - 51.64) MB-0.2%
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)-0.1%
.NET 8 - Baseline
process.internal_duration_ms20.09 ± (20.02 - 20.17) ms19.99 ± (19.91 - 20.07) ms-0.5%
process.time_to_main_ms76.52 ± (76.13 - 76.91) ms75.09 ± (74.70 - 75.47) ms-1.9%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.64 ± (7.63 - 7.64) MB7.66 ± (7.65 - 7.66) MB+0.2%✅⬆️
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 8 - Bailout
process.internal_duration_ms20.09 ± (20.02 - 20.16) ms19.93 ± (19.86 - 20.01) ms-0.8%
process.time_to_main_ms77.24 ± (76.94 - 77.54) ms76.66 ± (76.28 - 77.03) ms-0.8%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.70 ± (7.70 - 7.71) MB7.72 ± (7.71 - 7.73) MB+0.2%✅⬆️
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms192.68 ± (191.81 - 193.55) ms191.18 ± (190.30 - 192.05) ms-0.8%
process.time_to_main_ms498.51 ± (497.40 - 499.62) ms484.93 ± (483.87 - 485.99) ms-2.7%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed39.06 ± (39.02 - 39.10) MB38.84 ± (38.80 - 38.87) MB-0.6%
runtime.dotnet.threads.count27 ± (27 - 27)27 ± (27 - 27)-0.0%

HttpMessageHandler

Metric Master (Mean ± 95% CI) Current (Mean ± 95% CI) Change Status
.NET Framework 4.8 - Baseline
duration193.74 ± (193.49 - 194.18) ms192.28 ± (192.19 - 192.99) ms-0.8%
.NET Framework 4.8 - Bailout
duration198.70 ± (198.19 - 199.13) ms196.66 ± (196.49 - 197.02) ms-1.0%
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1166.93 ± (1171.97 - 1181.55) ms1166.60 ± (1169.24 - 1182.07) ms-0.0%
.NET Core 3.1 - Baseline
process.internal_duration_ms188.31 ± (187.96 - 188.66) ms188.54 ± (188.18 - 188.90) ms+0.1%✅⬆️
process.time_to_main_ms80.68 ± (80.44 - 80.93) ms80.60 ± (80.38 - 80.82) ms-0.1%
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.12 ± (16.09 - 16.15) MB16.11 ± (16.08 - 16.14) MB-0.1%
runtime.dotnet.threads.count20 ± (19 - 20)20 ± (20 - 20)+0.4%✅⬆️
.NET Core 3.1 - Bailout
process.internal_duration_ms189.16 ± (188.70 - 189.63) ms188.04 ± (187.76 - 188.33) ms-0.6%
process.time_to_main_ms82.44 ± (82.25 - 82.64) ms81.90 ± (81.77 - 82.03) ms-0.7%
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.10 ± (16.07 - 16.13) MB16.14 ± (16.11 - 16.17) MB+0.3%✅⬆️
runtime.dotnet.threads.count21 ± (21 - 21)21 ± (20 - 21)-0.5%
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms394.79 ± (392.60 - 396.98) ms392.42 ± (390.02 - 394.82) ms-0.6%
process.time_to_main_ms522.01 ± (520.88 - 523.15) ms517.40 ± (516.69 - 518.11) ms-0.9%
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed62.97 ± (62.81 - 63.12) MB62.74 ± (62.59 - 62.90) MB-0.4%
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)+0.0%✅⬆️
.NET 6 - Baseline
process.internal_duration_ms194.40 ± (193.96 - 194.85) ms192.50 ± (192.13 - 192.87) ms-1.0%
process.time_to_main_ms70.40 ± (70.18 - 70.62) ms69.64 ± (69.46 - 69.82) ms-1.1%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.17 ± (16.05 - 16.29) MB16.36 ± (16.31 - 16.41) MB+1.2%✅⬆️
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (19 - 19)+0.2%✅⬆️
.NET 6 - Bailout
process.internal_duration_ms193.61 ± (193.14 - 194.08) ms191.51 ± (191.23 - 191.79) ms-1.1%
process.time_to_main_ms71.18 ± (71.01 - 71.34) ms70.72 ± (70.61 - 70.83) ms-0.6%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.33 ± (16.27 - 16.39) MB16.23 ± (16.10 - 16.35) MB-0.6%
runtime.dotnet.threads.count20 ± (20 - 20)20 ± (19 - 20)-1.2%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms414.43 ± (411.63 - 417.24) ms412.20 ± (408.95 - 415.45) ms-0.5%
process.time_to_main_ms489.31 ± (488.61 - 490.01) ms482.66 ± (482.06 - 483.27) ms-1.4%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed62.47 ± (62.35 - 62.60) MB62.03 ± (61.89 - 62.17) MB-0.7%
runtime.dotnet.threads.count29 ± (29 - 30)30 ± (29 - 30)+0.1%✅⬆️
.NET 8 - Baseline
process.internal_duration_ms192.42 ± (191.98 - 192.86) ms191.09 ± (190.66 - 191.52) ms-0.7%
process.time_to_main_ms69.45 ± (69.26 - 69.64) ms69.57 ± (69.37 - 69.77) ms+0.2%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.71 ± (11.69 - 11.73) MB11.73 ± (11.70 - 11.75) MB+0.1%✅⬆️
runtime.dotnet.threads.count18 ± (18 - 18)18 ± (18 - 18)-0.3%
.NET 8 - Bailout
process.internal_duration_ms192.45 ± (192.00 - 192.90) ms190.68 ± (190.38 - 190.98) ms-0.9%
process.time_to_main_ms71.06 ± (70.87 - 71.24) ms70.48 ± (70.37 - 70.60) ms-0.8%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.78 ± (11.76 - 11.81) MB11.83 ± (11.80 - 11.86) MB+0.4%✅⬆️
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (19 - 19)-0.7%
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms365.10 ± (363.77 - 366.43) ms362.18 ± (360.71 - 363.65) ms-0.8%
process.time_to_main_ms467.44 ± (466.79 - 468.10) ms460.61 ± (459.88 - 461.33) ms-1.5%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed50.50 ± (50.46 - 50.54) MB50.22 ± (50.18 - 50.27) MB-0.5%
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)+0.3%✅⬆️
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 (7798) - mean (76ms)  : 71, 80
    master - mean (76ms)  : 71, 80

    section Bailout
    This PR (7798) - mean (79ms)  : 75, 84
    master - mean (79ms)  : 74, 83

    section CallTarget+Inlining+NGEN
    This PR (7798) - mean (1,120ms)  : 1052, 1189
    master - mean (1,121ms)  : 1049, 1193

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 (7798) - mean (117ms)  : 109, 125
    master - mean (117ms)  : 110, 125

    section Bailout
    This PR (7798) - mean (119ms)  : 112, 125
    master - mean (121ms)  : 114, 127

    section CallTarget+Inlining+NGEN
    This PR (7798) - mean (801ms)  : 760, 841
    master - mean (806ms)  : 762, 849

Loading
FakeDbCommand (.NET 6)
gantt
    title Execution time (ms) FakeDbCommand (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7798) - mean (104ms)  : 97, 111
    master - mean (105ms)  : 98, 113

    section Bailout
    This PR (7798) - mean (105ms)  : 100, 111
    master - mean (107ms)  : 100, 114

    section CallTarget+Inlining+NGEN
    This PR (7798) - mean (750ms)  : 701, 798
    master - mean (765ms)  : 727, 803

Loading
FakeDbCommand (.NET 8)
gantt
    title Execution time (ms) FakeDbCommand (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7798) - mean (104ms)  : 95, 112
    master - mean (105ms)  : 97, 113

    section Bailout
    This PR (7798) - mean (105ms)  : 99, 112
    master - mean (106ms)  : 100, 112

    section CallTarget+Inlining+NGEN
    This PR (7798) - mean (709ms)  : 684, 734
    master - mean (723ms)  : 696, 750

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 (7798) - mean (193ms)  : 189, 197
    master - mean (194ms)  : 189, 198

    section Bailout
    This PR (7798) - mean (197ms)  : 194, 199
    master - mean (199ms)  : 193, 204

    section CallTarget+Inlining+NGEN
    This PR (7798) - mean (1,176ms)  : 1102, 1249
    master - mean (1,177ms)  : 1106, 1247

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 (7798) - mean (278ms)  : 272, 284
    master - mean (277ms)  : 272, 283

    section Bailout
    This PR (7798) - mean (278ms)  : 273, 283
    master - mean (280ms)  : 272, 287

    section CallTarget+Inlining+NGEN
    This PR (7798) - mean (943ms)  : 887, 999
    master - mean (952ms)  : 896, 1008

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

    section Bailout
    This PR (7798) - mean (270ms)  : 267, 274
    master - mean (273ms)  : 264, 282

    section CallTarget+Inlining+NGEN
    This PR (7798) - mean (925ms)  : 875, 975
    master - mean (934ms)  : 890, 977

Loading
HttpMessageHandler (.NET 8)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7798) - mean (271ms)  : 265, 277
    master - mean (272ms)  : 262, 282

    section Bailout
    This PR (7798) - mean (271ms)  : 267, 274
    master - mean (273ms)  : 265, 281

    section CallTarget+Inlining+NGEN
    This PR (7798) - mean (853ms)  : 831, 875
    master - mean (865ms)  : 842, 888

Loading

@pr-commenter
Copy link

pr-commenter bot commented Nov 10, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #7798 compared to master:

  • 2 benchmarks are faster, with geometric mean 1.171
  • 1 benchmarks are slower, with geometric mean 1.166
  • 4 benchmarks have fewer allocations
  • 4 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 #7798

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 6 KB 6.05 KB 49 B 0.82%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 11.1μs 58.5ns 310ns 0 0 0 5.51 KB
master StartStopWithChild netcoreapp3.1 14μs 62.9ns 244ns 0 0 0 5.71 KB
master StartStopWithChild net472 23.4μs 125ns 663ns 1.02 0.41 0.102 6 KB
#7798 StartStopWithChild net6.0 10.6μs 59.4ns 394ns 0 0 0 5.51 KB
#7798 StartStopWithChild netcoreapp3.1 13.5μs 40.5ns 157ns 0 0 0 5.7 KB
#7798 StartStopWithChild net472 21.8μs 122ns 780ns 0.983 0.328 0.109 6.05 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 939μs 44.7ns 167ns 0 0 0 2.71 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.02ms 144ns 518ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.23ms 1.38μs 5.36μs 0 0 0 3.31 KB
#7798 WriteAndFlushEnrichedTraces net6.0 938μs 130ns 488ns 0 0 0 2.71 KB
#7798 WriteAndFlushEnrichedTraces netcoreapp3.1 1.04ms 515ns 1.99μs 0 0 0 2.7 KB
#7798 WriteAndFlushEnrichedTraces net472 1.2ms 85.9ns 321ns 0 0 0 3.31 KB
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.05μs 5.78ns 33.2ns 0 0 0 1.22 KB
master AllCycleSimpleBody netcoreapp3.1 1.46μs 8.09ns 54.2ns 0 0 0 1.2 KB
master AllCycleSimpleBody net472 1.02μs 0.564ns 2.18ns 0.194 0 0 1.23 KB
master AllCycleMoreComplexBody net6.0 6.97μs 38.5ns 225ns 0 0 0 4.72 KB
master AllCycleMoreComplexBody netcoreapp3.1 9μs 38.1ns 143ns 0 0 0 4.62 KB
master AllCycleMoreComplexBody net472 7.64μs 2.05ns 7.41ns 0.726 0 0 4.74 KB
master ObjectExtractorSimpleBody net6.0 314ns 1.79ns 12.9ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 400ns 2.26ns 14.5ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 297ns 0.0276ns 0.103ns 0.0434 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.4μs 27.6ns 107ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.77μs 35.6ns 138ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.75μs 7.87ns 30.5ns 0.572 0 0 3.8 KB
#7798 AllCycleSimpleBody net6.0 1.07μs 6.11ns 50.8ns 0 0 0 1.22 KB
#7798 AllCycleSimpleBody netcoreapp3.1 1.47μs 7.77ns 40.4ns 0 0 0 1.2 KB
#7798 AllCycleSimpleBody net472 1.01μs 0.683ns 2.64ns 0.192 0 0 1.23 KB
#7798 AllCycleMoreComplexBody net6.0 7.12μs 38.4ns 221ns 0 0 0 4.72 KB
#7798 AllCycleMoreComplexBody netcoreapp3.1 9.08μs 37.6ns 146ns 0 0 0 4.62 KB
#7798 AllCycleMoreComplexBody net472 7.69μs 4.18ns 16.2ns 0.726 0 0 4.74 KB
#7798 ObjectExtractorSimpleBody net6.0 321ns 1.8ns 11.8ns 0 0 0 280 B
#7798 ObjectExtractorSimpleBody netcoreapp3.1 406ns 2.21ns 11.7ns 0 0 0 272 B
#7798 ObjectExtractorSimpleBody net472 302ns 0.0423ns 0.158ns 0.0441 0 0 281 B
#7798 ObjectExtractorMoreComplexBody net6.0 6.91μs 30.5ns 114ns 0 0 0 3.78 KB
#7798 ObjectExtractorMoreComplexBody netcoreapp3.1 7.81μs 33.4ns 130ns 0 0 0 3.69 KB
#7798 ObjectExtractorMoreComplexBody net472 6.69μs 1.99ns 7.71ns 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.1μs 132ns 512ns 0 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 98.7μs 130ns 503ns 0 0 0 32.4 KB
master EncodeArgs net472 110μs 11ns 39.7ns 4.96 0 0 32.51 KB
master EncodeLegacyArgs net6.0 149μs 22.4ns 86.7ns 0 0 0 2.15 KB
master EncodeLegacyArgs netcoreapp3.1 198μs 191ns 738ns 0 0 0 2.14 KB
master EncodeLegacyArgs net472 264μs 118ns 457ns 0 0 0 2.16 KB
#7798 EncodeArgs net6.0 78μs 232ns 867ns 0 0 0 32.4 KB
#7798 EncodeArgs netcoreapp3.1 97.6μs 92.5ns 358ns 0 0 0 32.4 KB
#7798 EncodeArgs net472 111μs 52.9ns 205ns 4.98 0 0 32.51 KB
#7798 EncodeLegacyArgs net6.0 145μs 65.3ns 244ns 0 0 0 2.15 KB
#7798 EncodeLegacyArgs netcoreapp3.1 199μs 187ns 726ns 0 0 0 2.14 KB
#7798 EncodeLegacyArgs net472 264μs 44.3ns 171ns 0 0 0 2.16 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 395μs 63.3ns 228ns 0 0 0 4.55 KB
master RunWafRealisticBenchmark netcoreapp3.1 412μs 101ns 377ns 0 0 0 4.48 KB
master RunWafRealisticBenchmark net472 429μs 60.7ns 227ns 0 0 0 4.66 KB
master RunWafRealisticBenchmarkWithAttack net6.0 285μs 56ns 217ns 0 0 0 2.24 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 296μs 455ns 1.58μs 0 0 0 2.22 KB
master RunWafRealisticBenchmarkWithAttack net472 310μs 26.7ns 103ns 0 0 0 2.29 KB
#7798 RunWafRealisticBenchmark net6.0 398μs 87.2ns 338ns 0 0 0 4.55 KB
#7798 RunWafRealisticBenchmark netcoreapp3.1 410μs 106ns 367ns 0 0 0 4.48 KB
#7798 RunWafRealisticBenchmark net472 437μs 39.5ns 153ns 0 0 0 4.66 KB
#7798 RunWafRealisticBenchmarkWithAttack net6.0 295μs 46.6ns 168ns 0 0 0 2.24 KB
#7798 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 300μs 161ns 624ns 0 0 0 2.22 KB
#7798 RunWafRealisticBenchmarkWithAttack net472 309μs 30ns 116ns 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 62.5μs 207ns 800ns 0 0 0 14.52 KB
master SendRequest netcoreapp3.1 71.7μs 92.6ns 347ns 0 0 0 17.42 KB
master SendRequest net472 0.00731ns 0.00202ns 0.00782ns 0 0 0 0 b
#7798 SendRequest net6.0 61.4μs 64.8ns 251ns 0 0 0 14.52 KB
#7798 SendRequest netcoreapp3.1 71.5μs 122ns 423ns 0 0 0 17.42 KB
#7798 SendRequest net472 0.00309ns 0.00126ns 0.00488ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Slower ⚠️ Fewer allocations 🎉

Slower ⚠️ in #7798

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net6.0 1.166 1,334,067.36 1,555,282.64

Faster 🎉 in #7798

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0 1.149 924,341.83 804,400.00

Fewer allocations 🎉 in #7798

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0 3 B 2 B -1 B -33.33%
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 3.56μs 13.3μs 0 0 0 640 KB
master OriginalCharSlice netcoreapp3.1 2.14ms 9.79μs 39.2μs 0 0 0 640 KB
master OriginalCharSlice net472 2.7ms 842ns 3.15μs 100 0 0 641.95 KB
master OptimizedCharSlice net6.0 1.33ms 377ns 1.41μs 0 0 0 4 B
master OptimizedCharSlice netcoreapp3.1 1.69ms 551ns 2.06μs 0 0 0 1 B
master OptimizedCharSlice net472 1.98ms 257ns 962ns 0 0 0 73 B
master OptimizedCharSliceWithPool net6.0 924μs 25.7ns 99.7ns 0 0 0 3 B
master OptimizedCharSliceWithPool netcoreapp3.1 840μs 133ns 517ns 0 0 0 1 B
master OptimizedCharSliceWithPool net472 1.15ms 130ns 486ns 0 0 0 47 B
#7798 OriginalCharSlice net6.0 1.93ms 836ns 3.13μs 0 0 0 640 KB
#7798 OriginalCharSlice netcoreapp3.1 2.12ms 7.31μs 28.3μs 0 0 0 640 KB
#7798 OriginalCharSlice net472 2.71ms 92.2ns 357ns 100 0 0 641.95 KB
#7798 OptimizedCharSlice net6.0 1.56ms 104ns 404ns 0 0 0 4 B
#7798 OptimizedCharSlice netcoreapp3.1 1.74ms 442ns 1.71μs 0 0 0 1 B
#7798 OptimizedCharSlice net472 1.91ms 207ns 803ns 0 0 0 0 b
#7798 OptimizedCharSliceWithPool net6.0 804μs 20.8ns 71.9ns 0 0 0 2 B
#7798 OptimizedCharSliceWithPool netcoreapp3.1 809μs 112ns 435ns 0 0 0 1 B
#7798 OptimizedCharSliceWithPool net472 1.13ms 96.7ns 362ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #7798

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 56.42 KB 55.79 KB -631 B -1.12%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 650μs 1.55μs 5.79μs 0 0 0 41.73 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 690μs 3.15μs 11.8μs 0 0 0 42.08 KB
master WriteAndFlushEnrichedTraces net472 914μs 4.13μs 16μs 8.33 0 0 56.42 KB
#7798 WriteAndFlushEnrichedTraces net6.0 655μs 1.54μs 5.95μs 0 0 0 41.9 KB
#7798 WriteAndFlushEnrichedTraces netcoreapp3.1 712μs 1.61μs 6.23μs 0 0 0 41.92 KB
#7798 WriteAndFlushEnrichedTraces net472 991μs 3.76μs 14.6μs 4.81 0 0 55.79 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.92μs 8.85ns 31.9ns 0 0 0 1.02 KB
master ExecuteNonQuery netcoreapp3.1 2.68μs 2.3ns 8.29ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.87μs 3.69ns 14.3ns 0.144 0.0144 0 987 B
#7798 ExecuteNonQuery net6.0 2.02μs 4.59ns 17.8ns 0 0 0 1.02 KB
#7798 ExecuteNonQuery netcoreapp3.1 2.71μs 5.92ns 22.1ns 0 0 0 1.02 KB
#7798 ExecuteNonQuery net472 2.93μs 3.58ns 12.9ns 0.146 0.0146 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.66μs 8.35ns 38.3ns 0 0 0 1.03 KB
master CallElasticsearch netcoreapp3.1 2.24μs 1.26ns 4.9ns 0 0 0 1.03 KB
master CallElasticsearch net472 3.49μs 1.85ns 6.94ns 0.157 0 0 1.04 KB
master CallElasticsearchAsync net6.0 1.86μs 8.92ns 35.7ns 0 0 0 1.01 KB
master CallElasticsearchAsync netcoreapp3.1 2.44μs 12.2ns 53ns 0 0 0 1.08 KB
master CallElasticsearchAsync net472 3.65μs 2.93ns 11.4ns 0.165 0 0 1.1 KB
#7798 CallElasticsearch net6.0 1.75μs 8.65ns 37.7ns 0 0 0 1.03 KB
#7798 CallElasticsearch netcoreapp3.1 2.26μs 7.53ns 29.1ns 0 0 0 1.03 KB
#7798 CallElasticsearch net472 3.55μs 7.15ns 27.7ns 0.16 0 0 1.04 KB
#7798 CallElasticsearchAsync net6.0 1.82μs 0.95ns 3.68ns 0 0 0 1.01 KB
#7798 CallElasticsearchAsync netcoreapp3.1 2.51μs 9.32ns 34.9ns 0 0 0 1.08 KB
#7798 CallElasticsearchAsync net472 3.7μs 5.97ns 23.1ns 0.166 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 0.942ns 3.65ns 0 0 0 952 B
master ExecuteAsync netcoreapp3.1 2.45μs 7.74ns 30ns 0 0 0 952 B
master ExecuteAsync net472 2.58μs 0.856ns 3.31ns 0.141 0 0 915 B
#7798 ExecuteAsync net6.0 1.83μs 7.18ns 25.9ns 0 0 0 952 B
#7798 ExecuteAsync netcoreapp3.1 2.49μs 7.37ns 28.5ns 0 0 0 952 B
#7798 ExecuteAsync net472 2.59μs 3.93ns 15.2ns 0.141 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 7.08μs 3.27ns 12.7ns 0 0 0 2.36 KB
master SendAsync netcoreapp3.1 8.51μs 23.3ns 90.4ns 0 0 0 2.9 KB
master SendAsync net472 12.1μs 9.23ns 35.7ns 0.484 0 0 3.18 KB
#7798 SendAsync net6.0 6.8μs 18.8ns 67.8ns 0 0 0 2.36 KB
#7798 SendAsync netcoreapp3.1 8.79μs 28.2ns 105ns 0 0 0 2.9 KB
#7798 SendAsync net472 12μs 16.1ns 62.3ns 0.478 0 0 3.18 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Faster 🎉 More allocations ⚠️

Faster 🎉 in #7798

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 1.193 490,600.00 411,100.00 several?

More allocations ⚠️ in #7798

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472 57.34 KB 65.54 KB 8.19 KB 14.29%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 246.78 KB 257.97 KB 11.18 KB 4.53%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 42.92 KB 43.4 KB 480 B 1.12%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 44.6μs 251ns 1.57μs 0 0 0 43.78 KB
master StringConcatBenchmark netcoreapp3.1 48.5μs 267ns 2.49μs 0 0 0 42.92 KB
master StringConcatBenchmark net472 56.2μs 192ns 719ns 0 0 0 57.34 KB
master StringConcatAspectBenchmark net6.0 478μs 1.95μs 7.01μs 0 0 0 276.87 KB
master StringConcatAspectBenchmark netcoreapp3.1 492μs 2.48μs 10.8μs 0 0 0 246.78 KB
master StringConcatAspectBenchmark net472 403μs 2.29μs 16.5μs 0 0 0 278.53 KB
#7798 StringConcatBenchmark net6.0 42.2μs 219ns 1.07μs 0 0 0 43.94 KB
#7798 StringConcatBenchmark netcoreapp3.1 49μs 255ns 1.17μs 0 0 0 43.4 KB
#7798 StringConcatBenchmark net472 57.3μs 122ns 422ns 0 0 0 65.54 KB
#7798 StringConcatAspectBenchmark net6.0 490μs 1.5μs 5.21μs 0 0 0 276.45 KB
#7798 StringConcatAspectBenchmark netcoreapp3.1 428μs 5.28μs 52μs 0 0 0 257.97 KB
#7798 StringConcatAspectBenchmark net472 403μs 2.25μs 14.4μ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 7.59ns 29.4ns 0 0 0 1.7 KB
master EnrichedLog netcoreapp3.1 3.64μs 12.7ns 49.1ns 0 0 0 1.7 KB
master EnrichedLog net472 3.87μs 4.24ns 16.4ns 0.253 0 0 1.64 KB
#7798 EnrichedLog net6.0 2.69μs 13.8ns 56.9ns 0 0 0 1.7 KB
#7798 EnrichedLog netcoreapp3.1 3.68μs 13.7ns 53ns 0 0 0 1.7 KB
#7798 EnrichedLog net472 4μs 3.88ns 15ns 0.258 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 122μs 90.5ns 339ns 0 0 0 4.31 KB
master EnrichedLog netcoreapp3.1 128μs 140ns 541ns 0 0 0 4.31 KB
master EnrichedLog net472 168μs 125ns 486ns 0 0 0 4.52 KB
#7798 EnrichedLog net6.0 123μs 49.6ns 172ns 0 0 0 4.31 KB
#7798 EnrichedLog netcoreapp3.1 127μs 193ns 724ns 0 0 0 4.31 KB
#7798 EnrichedLog net472 167μs 141ns 547ns 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.93μs 14ns 54.4ns 0 0 0 2.26 KB
master EnrichedLog netcoreapp3.1 6.7μs 21ns 81.3ns 0 0 0 2.26 KB
master EnrichedLog net472 7.62μs 7.71ns 29.9ns 0.303 0 0 2.08 KB
#7798 EnrichedLog net6.0 4.97μs 17ns 66ns 0 0 0 2.26 KB
#7798 EnrichedLog netcoreapp3.1 6.91μs 20.5ns 76.6ns 0 0 0 2.26 KB
#7798 EnrichedLog net472 7.69μs 3.68ns 14.2ns 0.307 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.09μs 3.88ns 15ns 0 0 0 1.2 KB
master SendReceive netcoreapp3.1 2.57μs 12.2ns 50.2ns 0 0 0 1.2 KB
master SendReceive net472 3.13μs 6.92ns 26.8ns 0.189 0 0 1.2 KB
#7798 SendReceive net6.0 1.94μs 9.76ns 44.7ns 0 0 0 1.2 KB
#7798 SendReceive netcoreapp3.1 2.62μs 2.32ns 8.98ns 0 0 0 1.2 KB
#7798 SendReceive net472 3.03μs 2.4ns 8.99ns 0.182 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.43μs 3.32ns 12.9ns 0 0 0 1.58 KB
master EnrichedLog netcoreapp3.1 5.62μs 17.2ns 64.4ns 0 0 0 1.63 KB
master EnrichedLog net472 6.67μs 6.64ns 23.9ns 0.296 0 0 2.03 KB
#7798 EnrichedLog net6.0 4.32μs 3.56ns 13.8ns 0 0 0 1.58 KB
#7798 EnrichedLog netcoreapp3.1 5.68μs 10.8ns 41.9ns 0 0 0 1.63 KB
#7798 EnrichedLog net472 6.62μs 7.17ns 27.8ns 0.294 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 789ns 3.75ns 15ns 0 0 0 576 B
master StartFinishSpan netcoreapp3.1 965ns 4.87ns 23.4ns 0 0 0 576 B
master StartFinishSpan net472 949ns 0.0512ns 0.185ns 0.0901 0 0 578 B
master StartFinishScope net6.0 946ns 0.629ns 2.44ns 0 0 0 696 B
master StartFinishScope netcoreapp3.1 1.22μs 2.96ns 11.5ns 0 0 0 696 B
master StartFinishScope net472 1.13μs 0.288ns 1.04ns 0.102 0 0 658 B
#7798 StartFinishSpan net6.0 775ns 3.99ns 19.1ns 0 0 0 576 B
#7798 StartFinishSpan netcoreapp3.1 975ns 5.13ns 25.6ns 0 0 0 576 B
#7798 StartFinishSpan net472 929ns 0.806ns 3.12ns 0.0883 0 0 578 B
#7798 StartFinishScope net6.0 948ns 0.388ns 1.5ns 0 0 0 696 B
#7798 StartFinishScope netcoreapp3.1 1.22μs 5.72ns 22.9ns 0 0 0 696 B
#7798 StartFinishScope net472 1.12μs 1.24ns 4.82ns 0.101 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.07μs 5.24ns 20.9ns 0 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 1.44μs 0.635ns 2.46ns 0 0 0 696 B
master RunOnMethodBegin net472 1.45μs 1.29ns 4.99ns 0.101 0 0 658 B
#7798 RunOnMethodBegin net6.0 1.05μs 5.42ns 24.8ns 0 0 0 696 B
#7798 RunOnMethodBegin netcoreapp3.1 1.39μs 6.89ns 31.6ns 0 0 0 696 B
#7798 RunOnMethodBegin net472 1.46μs 0.785ns 3.04ns 0.102 0 0 658 B

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants