Skip to content

Conversation

@andrewlock
Copy link
Member

@andrewlock andrewlock commented Nov 25, 2025

Summary of changes

Fails the gitlab publish job if we fail to upload

Reason for change

We have been silently failing, and it's blocking the release

Implementation details

exit 1 if we fail to upload

Test coverage

This is the test. We're still broken, so this should fail.

https://datadoghq.atlassian.net/browse/APMLP-722

@andrewlock andrewlock requested a review from a team as a code owner November 25, 2025 11:36
@andrewlock andrewlock added the area:builds project files, build scripts, pipelines, versioning, releases, packages label Nov 25, 2025
@dd-trace-dotnet-ci-bot
Copy link

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

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing This PR (7861) 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.65 ± (74.73 - 75.44) ms77.16 ± (77.16 - 78.21) ms+3.4%✅⬆️
.NET Framework 4.8 - Bailout
duration78.86 ± (78.59 - 79.18) ms79.79 ± (79.96 - 80.80) ms+1.2%✅⬆️
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1056.80 ± (1061.21 - 1072.27) ms1076.11 ± (1079.73 - 1091.83) ms+1.8%✅⬆️
.NET Core 3.1 - Baseline
process.internal_duration_ms22.96 ± (22.87 - 23.05) ms23.20 ± (23.12 - 23.28) ms+1.1%✅⬆️
process.time_to_main_ms87.69 ± (87.30 - 88.09) ms88.84 ± (88.45 - 89.23) ms+1.3%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.94 ± (10.94 - 10.94) MB10.92 ± (10.92 - 10.92) MB-0.2%
runtime.dotnet.threads.count12 ± (12 - 12)12 ± (12 - 12)+0.0%
.NET Core 3.1 - Bailout
process.internal_duration_ms22.90 ± (22.83 - 22.97) ms23.15 ± (23.09 - 23.22) ms+1.1%✅⬆️
process.time_to_main_ms90.11 ± (89.70 - 90.53) ms90.93 ± (90.54 - 91.32) ms+0.9%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.98 ± (10.98 - 10.98) MB10.95 ± (10.95 - 10.96) 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.48 ± (219.02 - 221.93) ms224.61 ± (223.24 - 225.99) ms+1.9%✅⬆️
process.time_to_main_ms499.02 ± (497.87 - 500.18) ms513.17 ± (511.88 - 514.45) ms+2.8%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed47.76 ± (47.74 - 47.79) MB47.74 ± (47.72 - 47.76) MB-0.0%
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)+0.1%✅⬆️
.NET 6 - Baseline
process.internal_duration_ms21.65 ± (21.56 - 21.75) ms22.36 ± (22.28 - 22.44) ms+3.3%✅⬆️
process.time_to_main_ms76.17 ± (75.76 - 76.59) ms79.04 ± (78.65 - 79.43) ms+3.8%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.61 ± (10.61 - 10.61) MB10.64 ± (10.64 - 10.64) MB+0.2%✅⬆️
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 6 - Bailout
process.internal_duration_ms21.72 ± (21.65 - 21.79) ms22.35 ± (22.27 - 22.44) ms+2.9%✅⬆️
process.time_to_main_ms77.57 ± (77.24 - 77.89) ms80.49 ± (80.05 - 80.93) ms+3.8%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.66 ± (10.66 - 10.66) MB10.68 ± (10.67 - 10.68) MB+0.2%✅⬆️
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms213.60 ± (211.40 - 215.79) ms216.71 ± (214.07 - 219.36) ms+1.5%✅⬆️
process.time_to_main_ms468.00 ± (467.13 - 468.88) ms476.12 ± (474.84 - 477.40) ms+1.7%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed48.03 ± (48.00 - 48.05) MB48.11 ± (48.08 - 48.13) MB+0.2%✅⬆️
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)+0.1%✅⬆️
.NET 8 - Baseline
process.internal_duration_ms20.03 ± (19.96 - 20.10) ms20.36 ± (20.26 - 20.45) ms+1.6%✅⬆️
process.time_to_main_ms76.19 ± (75.85 - 76.53) ms78.06 ± (77.57 - 78.56) ms+2.5%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.66 ± (7.65 - 7.66) MB7.65 ± (7.64 - 7.65) MB-0.1%
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 8 - Bailout
process.internal_duration_ms20.00 ± (19.95 - 20.06) ms20.20 ± (20.14 - 20.27) ms+1.0%✅⬆️
process.time_to_main_ms77.13 ± (76.84 - 77.42) ms78.76 ± (78.41 - 79.12) ms+2.1%✅⬆️
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.54 ± (191.61 - 193.48) ms194.56 ± (193.55 - 195.57) ms+1.0%✅⬆️
process.time_to_main_ms456.57 ± (455.67 - 457.48) ms464.27 ± (463.04 - 465.51) ms+1.7%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed36.40 ± (36.36 - 36.44) MB36.48 ± (36.44 - 36.52) MB+0.2%✅⬆️
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
duration192.46 ± (192.43 - 193.26) ms198.23 ± (197.38 - 198.39) ms+3.0%✅⬆️
.NET Framework 4.8 - Bailout
duration196.34 ± (196.07 - 196.67) ms197.03 ± (196.99 - 197.59) ms+0.4%✅⬆️
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1104.28 ± (1110.04 - 1119.65) ms1103.73 ± (1105.60 - 1113.37) ms-0.0%
.NET Core 3.1 - Baseline
process.internal_duration_ms187.63 ± (187.29 - 187.97) ms188.13 ± (187.79 - 188.48) ms+0.3%✅⬆️
process.time_to_main_ms80.23 ± (80.04 - 80.42) ms81.36 ± (81.11 - 81.62) ms+1.4%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.06 ± (16.03 - 16.09) MB16.19 ± (16.16 - 16.21) MB+0.8%✅⬆️
runtime.dotnet.threads.count19 ± (19 - 20)20 ± (19 - 20)+0.3%✅⬆️
.NET Core 3.1 - Bailout
process.internal_duration_ms187.08 ± (186.77 - 187.38) ms188.15 ± (187.80 - 188.49) ms+0.6%✅⬆️
process.time_to_main_ms81.72 ± (81.59 - 81.85) ms82.75 ± (82.59 - 82.92) ms+1.3%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.15 ± (16.13 - 16.18) MB16.18 ± (16.16 - 16.21) MB+0.2%✅⬆️
runtime.dotnet.threads.count21 ± (21 - 21)21 ± (20 - 21)-0.4%
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms401.57 ± (398.56 - 404.58) ms407.46 ± (404.56 - 410.37) ms+1.5%✅⬆️
process.time_to_main_ms469.82 ± (469.27 - 470.37) ms474.04 ± (473.28 - 474.80) ms+0.9%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed58.26 ± (58.12 - 58.41) MB58.59 ± (58.47 - 58.70) MB+0.6%✅⬆️
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)-0.0%
.NET 6 - Baseline
process.internal_duration_ms191.33 ± (190.98 - 191.68) ms191.17 ± (190.82 - 191.51) ms-0.1%
process.time_to_main_ms69.68 ± (69.51 - 69.86) ms70.28 ± (70.11 - 70.44) ms+0.9%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.04 ± (15.88 - 16.20) MB15.97 ± (15.80 - 16.13) MB-0.4%
runtime.dotnet.threads.count18 ± (18 - 18)18 ± (18 - 18)-0.5%
.NET 6 - Bailout
process.internal_duration_ms190.15 ± (189.93 - 190.37) ms190.80 ± (190.52 - 191.08) ms+0.3%✅⬆️
process.time_to_main_ms70.37 ± (70.31 - 70.44) ms71.11 ± (71.00 - 71.22) ms+1.1%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.02 ± (15.86 - 16.18) MB16.09 ± (15.93 - 16.25) MB+0.5%✅⬆️
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (19 - 19)-0.2%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms418.39 ± (415.12 - 421.66) ms416.03 ± (413.22 - 418.83) ms-0.6%
process.time_to_main_ms442.71 ± (442.09 - 443.34) ms442.38 ± (441.82 - 442.93) ms-0.1%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed58.63 ± (58.49 - 58.76) MB58.89 ± (58.76 - 59.03) MB+0.5%✅⬆️
runtime.dotnet.threads.count29 ± (29 - 30)30 ± (29 - 30)+0.2%✅⬆️
.NET 8 - Baseline
process.internal_duration_ms190.44 ± (190.10 - 190.78) ms190.49 ± (190.17 - 190.80) ms+0.0%✅⬆️
process.time_to_main_ms69.32 ± (69.15 - 69.48) ms69.88 ± (69.70 - 70.07) ms+0.8%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.76 ± (11.74 - 11.79) MB11.74 ± (11.71 - 11.77) MB-0.2%
runtime.dotnet.threads.count18 ± (18 - 18)18 ± (18 - 18)-0.1%
.NET 8 - Bailout
process.internal_duration_ms189.46 ± (189.20 - 189.72) ms189.87 ± (189.59 - 190.15) ms+0.2%✅⬆️
process.time_to_main_ms70.28 ± (70.17 - 70.39) ms70.80 ± (70.70 - 70.91) ms+0.7%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.81 ± (11.76 - 11.87) MB11.82 ± (11.79 - 11.84) MB+0.0%✅⬆️
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (19 - 19)+1.3%✅⬆️
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms370.02 ± (368.60 - 371.44) ms367.16 ± (365.68 - 368.65) ms-0.8%
process.time_to_main_ms433.91 ± (433.08 - 434.74) ms431.90 ± (431.25 - 432.56) ms-0.5%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed47.85 ± (47.82 - 47.88) MB47.85 ± (47.81 - 47.88) MB-0.0%
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)+0.5%✅⬆️
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 (7861) - mean (78ms)  : 70, 86
    master - mean (75ms)  : 70, 80

    section Bailout
    This PR (7861) - mean (80ms)  : 74, 87
    master - mean (79ms)  : 74, 83

    section CallTarget+Inlining+NGEN
    This PR (7861) - mean (1,086ms)  : 997, 1175
    master - mean (1,067ms)  : 986, 1147

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 (7861) - mean (120ms)  : 111, 128
    master - mean (118ms)  : 110, 126

    section Bailout
    This PR (7861) - mean (122ms)  : 114, 130
    master - mean (120ms)  : 112, 129

    section CallTarget+Inlining+NGEN
    This PR (7861) - mean (778ms)  : 732, 824
    master - mean (760ms)  : 719, 800

Loading
FakeDbCommand (.NET 6)
gantt
    title Execution time (ms) FakeDbCommand (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7861) - mean (109ms)  : 102, 116
    master - mean (105ms)  : 99, 110

    section Bailout
    This PR (7861) - mean (110ms)  : 101, 119
    master - mean (106ms)  : 101, 112

    section CallTarget+Inlining+NGEN
    This PR (7861) - mean (724ms)  : 674, 774
    master - mean (713ms)  : 668, 758

Loading
FakeDbCommand (.NET 8)
gantt
    title Execution time (ms) FakeDbCommand (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7861) - mean (107ms)  : 96, 119
    master - mean (105ms)  : 97, 113

    section Bailout
    This PR (7861) - mean (108ms)  : 100, 116
    master - mean (106ms)  : 101, 111

    section CallTarget+Inlining+NGEN
    This PR (7861) - mean (696ms)  : 659, 734
    master - mean (688ms)  : 660, 716

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 (7861) - mean (198ms)  : 191, 205
    master - mean (193ms)  : 189, 197

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

    section CallTarget+Inlining+NGEN
    This PR (7861) - mean (1,109ms)  : 1054, 1165
    master - mean (1,115ms)  : 1045, 1185

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 (7861) - mean (278ms)  : 272, 284
    master - mean (276ms)  : 272, 281

    section Bailout
    This PR (7861) - mean (279ms)  : 275, 283
    master - mean (277ms)  : 274, 280

    section CallTarget+Inlining+NGEN
    This PR (7861) - mean (920ms)  : 881, 959
    master - mean (903ms)  : 851, 955

Loading
HttpMessageHandler (.NET 6)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7861) - mean (270ms)  : 265, 274
    master - mean (270ms)  : 264, 276

    section Bailout
    This PR (7861) - mean (270ms)  : 267, 274
    master - mean (268ms)  : 265, 272

    section CallTarget+Inlining+NGEN
    This PR (7861) - mean (893ms)  : 838, 948
    master - mean (893ms)  : 833, 953

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

    section Bailout
    This PR (7861) - mean (270ms)  : 267, 274
    master - mean (269ms)  : 266, 273

    section CallTarget+Inlining+NGEN
    This PR (7861) - mean (829ms)  : 812, 847
    master - mean (835ms)  : 808, 862

Loading

@pr-commenter
Copy link

pr-commenter bot commented Nov 25, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #7861 compared to master:

  • 1 benchmarks are faster, with geometric mean 2.052
  • 1 benchmarks are slower, with geometric mean 1.112
  • 6 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 ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #7861

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 6.1 KB 6.04 KB -59 B -0.97%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 10.7μs 53.2ns 219ns 0 0 0 5.51 KB
master StartStopWithChild netcoreapp3.1 13.9μs 59.4ns 230ns 0 0 0 5.7 KB
master StartStopWithChild net472 22.5μs 119ns 653ns 0.963 0.214 0 6.1 KB
#7861 StartStopWithChild net6.0 11.4μs 43.3ns 168ns 0 0 0 5.5 KB
#7861 StartStopWithChild netcoreapp3.1 14μs 47.9ns 173ns 0 0 0 5.72 KB
#7861 StartStopWithChild net472 22.2μs 118ns 634ns 0.978 0.326 0.109 6.04 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 934μs 170ns 659ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.04ms 280ns 1.09μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.19ms 240ns 928ns 0 0 0 3.31 KB
#7861 WriteAndFlushEnrichedTraces net6.0 925μs 57.4ns 207ns 0 0 0 2.7 KB
#7861 WriteAndFlushEnrichedTraces netcoreapp3.1 1.02ms 177ns 684ns 0 0 0 2.7 KB
#7861 WriteAndFlushEnrichedTraces net472 1.24ms 2.69μs 10.4μs 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.06μs 6ns 34ns 0 0 0 1.22 KB
master AllCycleSimpleBody netcoreapp3.1 1.44μs 0.837ns 3.24ns 0 0 0 1.2 KB
master AllCycleSimpleBody net472 1.02μs 0.193ns 0.722ns 0.193 0 0 1.23 KB
master AllCycleMoreComplexBody net6.0 7.21μs 35.8ns 160ns 0 0 0 4.72 KB
master AllCycleMoreComplexBody netcoreapp3.1 9μs 36.7ns 137ns 0 0 0 4.62 KB
master AllCycleMoreComplexBody net472 7.69μs 5.41ns 20.9ns 0.731 0 0 4.74 KB
master ObjectExtractorSimpleBody net6.0 319ns 1.72ns 9.7ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 385ns 2.18ns 14.1ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 297ns 0.0397ns 0.148ns 0.0439 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.28μs 31.9ns 153ns 0 0 0 3.79 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.83μs 2.59ns 9.67ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.69μs 4.12ns 16ns 0.601 0 0 3.8 KB
#7861 AllCycleSimpleBody net6.0 1.05μs 5.57ns 30ns 0 0 0 1.22 KB
#7861 AllCycleSimpleBody netcoreapp3.1 1.46μs 1.03ns 3.99ns 0 0 0 1.2 KB
#7861 AllCycleSimpleBody net472 1.03μs 0.8ns 2.99ns 0.19 0 0 1.23 KB
#7861 AllCycleMoreComplexBody net6.0 7.04μs 35.1ns 153ns 0 0 0 4.72 KB
#7861 AllCycleMoreComplexBody netcoreapp3.1 8.95μs 42.5ns 165ns 0 0 0 4.62 KB
#7861 AllCycleMoreComplexBody net472 7.64μs 5.05ns 19.6ns 0.73 0 0 4.74 KB
#7861 ObjectExtractorSimpleBody net6.0 320ns 0.0806ns 0.302ns 0 0 0 280 B
#7861 ObjectExtractorSimpleBody netcoreapp3.1 399ns 2.09ns 10.6ns 0 0 0 272 B
#7861 ObjectExtractorSimpleBody net472 297ns 0.0682ns 0.255ns 0.0436 0 0 281 B
#7861 ObjectExtractorMoreComplexBody net6.0 6.3μs 26.5ns 109ns 0 0 0 3.78 KB
#7861 ObjectExtractorMoreComplexBody netcoreapp3.1 7.94μs 14ns 54.2ns 0 0 0 3.69 KB
#7861 ObjectExtractorMoreComplexBody net472 6.69μs 6.69ns 25.9ns 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 76.8μs 186ns 695ns 0 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 96.8μs 296ns 1.15μs 0 0 0 32.4 KB
master EncodeArgs net472 109μs 7.23ns 27.1ns 4.91 0 0 32.51 KB
master EncodeLegacyArgs net6.0 148μs 56.9ns 213ns 0 0 0 2.15 KB
master EncodeLegacyArgs netcoreapp3.1 199μs 141ns 527ns 0 0 0 2.14 KB
master EncodeLegacyArgs net472 264μs 19.6ns 70.7ns 0 0 0 2.16 KB
#7861 EncodeArgs net6.0 78.3μs 55.5ns 208ns 0 0 0 32.4 KB
#7861 EncodeArgs netcoreapp3.1 97.5μs 204ns 788ns 0 0 0 32.4 KB
#7861 EncodeArgs net472 108μs 8.72ns 32.6ns 4.88 0 0 32.51 KB
#7861 EncodeLegacyArgs net6.0 145μs 28.7ns 111ns 0 0 0 2.15 KB
#7861 EncodeLegacyArgs netcoreapp3.1 199μs 213ns 826ns 0 0 0 2.14 KB
#7861 EncodeLegacyArgs net472 263μs 49ns 190ns 0 0 0 2.16 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Faster 🎉 Same allocations ✔️

Faster 🎉 in #7861

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmark‑netcoreapp3.1 2.052 853,429.64 415,855.06

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 396μs 119ns 460ns 0 0 0 4.55 KB
master RunWafRealisticBenchmark netcoreapp3.1 809μs 13.4μs 134μs 0 0 0 4.48 KB
master RunWafRealisticBenchmark net472 430μs 84.7ns 328ns 0 0 0 4.66 KB
master RunWafRealisticBenchmarkWithAttack net6.0 289μs 22.3ns 83.3ns 0 0 0 2.24 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 671μs 13.5μs 134μs 0 0 0 2.22 KB
master RunWafRealisticBenchmarkWithAttack net472 310μs 37.6ns 146ns 0 0 0 2.29 KB
#7861 RunWafRealisticBenchmark net6.0 398μs 89.9ns 336ns 0 0 0 4.55 KB
#7861 RunWafRealisticBenchmark netcoreapp3.1 416μs 77.9ns 292ns 0 0 0 4.48 KB
#7861 RunWafRealisticBenchmark net472 430μs 30.1ns 109ns 0 0 0 4.66 KB
#7861 RunWafRealisticBenchmarkWithAttack net6.0 288μs 44.6ns 173ns 0 0 0 2.24 KB
#7861 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 721μs 7.6μs 76μs 0 0 0 2.22 KB
#7861 RunWafRealisticBenchmarkWithAttack net472 310μs 317ns 1.23μs 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.3μs 41.5ns 161ns 0 0 0 14.52 KB
master SendRequest netcoreapp3.1 71.6μs 63.2ns 245ns 0 0 0 17.42 KB
master SendRequest net472 0.00307ns 0.00157ns 0.00609ns 0 0 0 0 b
#7861 SendRequest net6.0 60.4μs 207ns 745ns 0 0 0 14.52 KB
#7861 SendRequest netcoreapp3.1 72.2μs 195ns 754ns 0 0 0 17.42 KB
#7861 SendRequest net472 0.00214ns 0.00105ns 0.00405ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Slower ⚠️ More allocations ⚠️

Slower ⚠️ in #7861

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0 1.112 816,465.82 907,904.69

More allocations ⚠️ in #7861

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0 2 B 4 B 2 B 100.00%

Fewer allocations 🎉 in #7861

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net6.0 7 B 2 B -5 B -71.43%
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑netcoreapp3.1 1 B 0 b -1 B -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master OriginalCharSlice net6.0 1.91ms 532ns 1.99μs 0 0 0 640.01 KB
master OriginalCharSlice netcoreapp3.1 2.14ms 7.49μs 29μs 0 0 0 640 KB
master OriginalCharSlice net472 2.62ms 881ns 3.41μs 100 0 0 641.95 KB
master OptimizedCharSlice net6.0 1.35ms 2.73μs 10.6μs 0 0 0 7 B
master OptimizedCharSlice netcoreapp3.1 1.69ms 297ns 1.15μs 0 0 0 1 B
master OptimizedCharSlice net472 1.94ms 170ns 638ns 0 0 0 0 b
master OptimizedCharSliceWithPool net6.0 816μs 26.3ns 102ns 0 0 0 2 B
master OptimizedCharSliceWithPool netcoreapp3.1 873μs 52.2ns 195ns 0 0 0 1 B
master OptimizedCharSliceWithPool net472 1.14ms 113ns 439ns 0 0 0 0 b
#7861 OriginalCharSlice net6.0 2ms 5.26μs 20.4μs 0 0 0 640 KB
#7861 OriginalCharSlice netcoreapp3.1 2.15ms 8.9μs 30.8μs 0 0 0 640 KB
#7861 OriginalCharSlice net472 2.7ms 232ns 898ns 100 0 0 641.95 KB
#7861 OptimizedCharSlice net6.0 1.45ms 349ns 1.35μs 0 0 0 2 B
#7861 OptimizedCharSlice netcoreapp3.1 1.71ms 581ns 2.25μs 0 0 0 1 B
#7861 OptimizedCharSlice net472 1.99ms 266ns 1.03μs 0 0 0 0 b
#7861 OptimizedCharSliceWithPool net6.0 908μs 14.2ns 49.1ns 0 0 0 4 B
#7861 OptimizedCharSliceWithPool netcoreapp3.1 922μs 37.7ns 146ns 0 0 0 0 b
#7861 OptimizedCharSliceWithPool net472 1.15ms 112ns 435ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7861

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 42.75 KB 43.13 KB 377 B 0.88%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 719μs 937ns 3.51μs 0 0 0 41.78 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 748μs 2.2μs 8.54μs 0 0 0 42.75 KB
master WriteAndFlushEnrichedTraces net472 1.03ms 5.08μs 21.6μs 5.21 0 0 55.94 KB
#7861 WriteAndFlushEnrichedTraces net6.0 692μs 3.33μs 13.7μs 0 0 0 41.71 KB
#7861 WriteAndFlushEnrichedTraces netcoreapp3.1 766μs 6.18μs 60.9μs 0 0 0 43.13 KB
#7861 WriteAndFlushEnrichedTraces net472 989μs 4.7μs 19.4μs 4.81 0 0 55.7 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.89μs 9.71ns 47.6ns 0 0 0 1.02 KB
master ExecuteNonQuery netcoreapp3.1 2.62μs 9.75ns 37.8ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.86μs 3.4ns 13.2ns 0.156 0.0142 0 987 B
#7861 ExecuteNonQuery net6.0 1.85μs 0.469ns 1.62ns 0 0 0 1.02 KB
#7861 ExecuteNonQuery netcoreapp3.1 2.53μs 1.34ns 5.17ns 0 0 0 1.02 KB
#7861 ExecuteNonQuery net472 2.85μs 3.98ns 15.4ns 0.143 0.0143 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.7μs 7.41ns 27.7ns 0 0 0 1.03 KB
master CallElasticsearch netcoreapp3.1 2.23μs 7.38ns 26.6ns 0 0 0 1.03 KB
master CallElasticsearch net472 3.56μs 3.18ns 12.3ns 0.161 0 0 1.04 KB
master CallElasticsearchAsync net6.0 1.8μs 1.26ns 4.56ns 0 0 0 1.01 KB
master CallElasticsearchAsync netcoreapp3.1 2.32μs 11.2ns 46.2ns 0 0 0 1.08 KB
master CallElasticsearchAsync net472 3.84μs 4.65ns 18ns 0.173 0 0 1.1 KB
#7861 CallElasticsearch net6.0 1.78μs 8.84ns 37.5ns 0 0 0 1.03 KB
#7861 CallElasticsearch netcoreapp3.1 2.32μs 9.69ns 37.5ns 0 0 0 1.03 KB
#7861 CallElasticsearch net472 3.53μs 4.53ns 17.6ns 0.161 0 0 1.04 KB
#7861 CallElasticsearchAsync net6.0 1.83μs 2.25ns 8.71ns 0 0 0 1.01 KB
#7861 CallElasticsearchAsync netcoreapp3.1 2.36μs 9.38ns 36.3ns 0 0 0 1.08 KB
#7861 CallElasticsearchAsync net472 3.75μs 4.02ns 15.1ns 0.171 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.85μs 5.4ns 20.9ns 0 0 0 952 B
master ExecuteAsync netcoreapp3.1 2.5μs 3.77ns 14.6ns 0 0 0 952 B
master ExecuteAsync net472 2.52μs 0.907ns 3.51ns 0.138 0 0 915 B
#7861 ExecuteAsync net6.0 1.91μs 7.64ns 29.6ns 0 0 0 952 B
#7861 ExecuteAsync netcoreapp3.1 2.47μs 9.37ns 36.3ns 0 0 0 952 B
#7861 ExecuteAsync net472 2.56μs 1.88ns 6.52ns 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μs 4.77ns 17.8ns 0 0 0 2.36 KB
master SendAsync netcoreapp3.1 9.15μs 26.8ns 104ns 0 0 0 2.9 KB
master SendAsync net472 12μs 6.39ns 23.9ns 0.481 0 0 3.18 KB
#7861 SendAsync net6.0 7.1μs 8.56ns 32ns 0 0 0 2.36 KB
#7861 SendAsync netcoreapp3.1 8.7μs 26.5ns 102ns 0 0 0 2.9 KB
#7861 SendAsync net472 12.4μs 7.33ns 28.4ns 0.492 0 0 3.18 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7861

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 258.66 KB 273.13 KB 14.47 KB 5.60%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 43.44 KB 44.62 KB 1.18 KB 2.73%

Fewer allocations 🎉 in #7861

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 258.88 KB 257.02 KB -1.86 KB -0.72%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 43.19 KB 42.74 KB -456 B -1.06%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472 65.54 KB 57.34 KB -8.19 KB -12.50%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 45.5μs 252ns 2.09μs 0 0 0 43.44 KB
master StringConcatBenchmark netcoreapp3.1 50μs 290ns 2.28μs 0 0 0 43.19 KB
master StringConcatBenchmark net472 58.2μs 169ns 632ns 0 0 0 65.54 KB
master StringConcatAspectBenchmark net6.0 459μs 1.55μs 6.22μs 0 0 0 258.88 KB
master StringConcatAspectBenchmark netcoreapp3.1 523μs 2.54μs 10.8μs 0 0 0 258.66 KB
master StringConcatAspectBenchmark net472 411μs 2.07μs 10.5μs 0 0 0 278.53 KB
#7861 StringConcatBenchmark net6.0 43.8μs 255ns 2.04μs 0 0 0 44.62 KB
#7861 StringConcatBenchmark netcoreapp3.1 50.5μs 282ns 1.71μs 0 0 0 42.74 KB
#7861 StringConcatBenchmark net472 57.2μs 154ns 574ns 0 0 0 57.34 KB
#7861 StringConcatAspectBenchmark net6.0 447μs 1.29μs 4.47μs 0 0 0 257.02 KB
#7861 StringConcatAspectBenchmark netcoreapp3.1 518μs 1.52μs 6.06μs 0 0 0 273.13 KB
#7861 StringConcatAspectBenchmark net472 406μs 1.87μs 12.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.67μs 13.7ns 61.1ns 0 0 0 1.7 KB
master EnrichedLog netcoreapp3.1 3.58μs 9.86ns 38.2ns 0 0 0 1.7 KB
master EnrichedLog net472 3.97μs 3.72ns 14.4ns 0.257 0 0 1.64 KB
#7861 EnrichedLog net6.0 2.66μs 12.8ns 49.5ns 0 0 0 1.7 KB
#7861 EnrichedLog netcoreapp3.1 3.62μs 18ns 74.1ns 0 0 0 1.7 KB
#7861 EnrichedLog net472 3.97μs 3.09ns 11.1ns 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 72.1ns 260ns 0 0 0 4.31 KB
master EnrichedLog netcoreapp3.1 128μs 72.6ns 262ns 0 0 0 4.31 KB
master EnrichedLog net472 166μs 232ns 897ns 0 0 0 4.52 KB
#7861 EnrichedLog net6.0 123μs 65.8ns 255ns 0 0 0 4.31 KB
#7861 EnrichedLog netcoreapp3.1 128μs 356ns 1.38μs 0 0 0 4.31 KB
#7861 EnrichedLog net472 166μs 92.2ns 357ns 0 0 0 4.51 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μs 23.5ns 97ns 0 0 0 2.26 KB
master EnrichedLog netcoreapp3.1 6.9μs 28.4ns 110ns 0 0 0 2.26 KB
master EnrichedLog net472 7.58μs 4.68ns 17.5ns 0.301 0 0 2.08 KB
#7861 EnrichedLog net6.0 5μs 7.56ns 29.3ns 0 0 0 2.26 KB
#7861 EnrichedLog netcoreapp3.1 6.82μs 14.1ns 52.7ns 0 0 0 2.26 KB
#7861 EnrichedLog net472 7.55μs 8.16ns 31.6ns 0.303 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.01μs 1.23ns 4.61ns 0 0 0 1.2 KB
master SendReceive netcoreapp3.1 2.52μs 12ns 48.2ns 0 0 0 1.2 KB
master SendReceive net472 3.19μs 5.06ns 19.6ns 0.189 0 0 1.2 KB
#7861 SendReceive net6.0 1.91μs 7.77ns 29.1ns 0 0 0 1.2 KB
#7861 SendReceive netcoreapp3.1 2.57μs 2.51ns 9.74ns 0 0 0 1.2 KB
#7861 SendReceive net472 3.13μs 2.01ns 7.78ns 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.31μs 13.3ns 49.9ns 0 0 0 1.58 KB
master EnrichedLog netcoreapp3.1 5.59μs 5.7ns 22.1ns 0 0 0 1.63 KB
master EnrichedLog net472 6.92μs 6.43ns 24.1ns 0.311 0 0 2.03 KB
#7861 EnrichedLog net6.0 4.28μs 7.62ns 29.5ns 0 0 0 1.58 KB
#7861 EnrichedLog netcoreapp3.1 5.66μs 15.4ns 59.5ns 0 0 0 1.63 KB
#7861 EnrichedLog net472 6.62μs 5.99ns 23.2ns 0.299 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 788ns 4.15ns 20.3ns 0 0 0 576 B
master StartFinishSpan netcoreapp3.1 973ns 4.79ns 19.7ns 0 0 0 576 B
master StartFinishSpan net472 942ns 0.772ns 2.99ns 0.09 0 0 578 B
master StartFinishScope net6.0 930ns 4.96ns 24.8ns 0 0 0 696 B
master StartFinishScope netcoreapp3.1 1.17μs 6.38ns 36.1ns 0 0 0 696 B
master StartFinishScope net472 1.18μs 0.919ns 3.44ns 0.1 0 0 658 B
#7861 StartFinishSpan net6.0 772ns 0.469ns 1.75ns 0 0 0 576 B
#7861 StartFinishSpan netcoreapp3.1 987ns 4.73ns 18.9ns 0 0 0 576 B
#7861 StartFinishSpan net472 1μs 1.21ns 4.68ns 0.09 0 0 578 B
#7861 StartFinishScope net6.0 932ns 0.267ns 0.964ns 0 0 0 696 B
#7861 StartFinishScope netcoreapp3.1 1.21μs 5.94ns 25.2ns 0 0 0 696 B
#7861 StartFinishScope net472 1.22μs 0.424ns 1.64ns 0.103 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.08μs 5.6ns 22.4ns 0 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 1.49μs 5.97ns 23.1ns 0 0 0 696 B
master RunOnMethodBegin net472 1.45μs 0.655ns 2.45ns 0.102 0 0 658 B
#7861 RunOnMethodBegin net6.0 1.14μs 5.54ns 22.2ns 0 0 0 696 B
#7861 RunOnMethodBegin netcoreapp3.1 1.49μs 7.11ns 29.3ns 0 0 0 696 B
#7861 RunOnMethodBegin net472 1.44μs 0.703ns 2.72ns 0.101 0 0 658 B

Copy link
Collaborator

@NachoEchevarria NachoEchevarria left a comment

Choose a reason for hiding this comment

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

Thanks!

@andrewlock andrewlock merged commit 499289a into master Nov 25, 2025
149 checks passed
@andrewlock andrewlock deleted the andrew/fix-exit-code branch November 25, 2025 15:30
@github-actions github-actions bot added this to the vNext-v3 milestone Nov 25, 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.

3 participants