Skip to content

Add testing for Microsoft.Data.Sqlite v10#7936

Merged
andrewlock merged 1 commit intomasterfrom
andrew/sqlite-10
Dec 10, 2025
Merged

Add testing for Microsoft.Data.Sqlite v10#7936
andrewlock merged 1 commit intomasterfrom
andrew/sqlite-10

Conversation

@andrewlock
Copy link
Member

Summary of changes

Adds testing for the new Microsoft.Data.Sqlite 10.x.x

Reason for change

We want to test the latest versions

Implementation details

AFAICT, we already support this version, we just aren't testing it! So his just bumps the testing and 🤞

Test coverage

More now

@andrewlock andrewlock requested a review from a team as a code owner December 9, 2025 18:01
@andrewlock andrewlock added the area:tracer The core tracer library (Datadog.Trace, does not include OpenTracing, native code, or integrations) label Dec 9, 2025
@andrewlock andrewlock requested a review from a team as a code owner December 9, 2025 18:01
@dd-trace-dotnet-ci-bot
Copy link

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing This PR (7936) 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
duration77.07 ± (77.20 - 78.16) ms76.86 ± (76.97 - 77.83) ms-0.3%
.NET Framework 4.8 - Bailout
duration79.58 ± (79.67 - 80.48) ms80.10 ± (80.50 - 81.26) ms+0.6%✅⬆️
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1067.09 ± (1069.31 - 1079.52) ms1085.54 ± (1084.30 - 1095.13) ms+1.7%✅⬆️
.NET Core 3.1 - Baseline
process.internal_duration_ms23.14 ± (23.05 - 23.22) ms23.09 ± (23.01 - 23.17) ms-0.2%
process.time_to_main_ms89.44 ± (88.94 - 89.94) ms88.56 ± (88.10 - 89.03) ms-1.0%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.93 ± (10.92 - 10.93) MB10.93 ± (10.93 - 10.94) MB+0.1%✅⬆️
runtime.dotnet.threads.count12 ± (12 - 12)12 ± (12 - 12)+0.0%
.NET Core 3.1 - Bailout
process.internal_duration_ms22.92 ± (22.85 - 22.98) ms23.03 ± (22.95 - 23.11) ms+0.5%✅⬆️
process.time_to_main_ms90.63 ± (90.16 - 91.11) ms89.81 ± (89.43 - 90.19) ms-0.9%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.96 ± (10.96 - 10.97) MB10.97 ± (10.96 - 10.97) MB+0.0%✅⬆️
runtime.dotnet.threads.count13 ± (13 - 13)13 ± (13 - 13)+0.0%
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms222.05 ± (220.69 - 223.41) ms224.74 ± (223.58 - 225.89) ms+1.2%✅⬆️
process.time_to_main_ms504.78 ± (503.50 - 506.07) ms510.75 ± (509.35 - 512.14) ms+1.2%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed47.96 ± (47.94 - 47.98) MB47.91 ± (47.89 - 47.93) MB-0.1%
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)+0.0%✅⬆️
.NET 6 - Baseline
process.internal_duration_ms21.65 ± (21.57 - 21.73) ms21.94 ± (21.86 - 22.03) ms+1.4%✅⬆️
process.time_to_main_ms75.64 ± (75.25 - 76.03) ms77.83 ± (77.41 - 78.24) ms+2.9%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.61 ± (10.60 - 10.61) MB10.62 ± (10.62 - 10.63) MB+0.2%✅⬆️
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 6 - Bailout
process.internal_duration_ms21.51 ± (21.45 - 21.58) ms21.96 ± (21.88 - 22.04) ms+2.1%✅⬆️
process.time_to_main_ms77.58 ± (77.16 - 78.01) ms79.35 ± (78.96 - 79.73) ms+2.3%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.66 ± (10.65 - 10.66) MB10.66 ± (10.66 - 10.66) MB+0.0%✅⬆️
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms210.37 ± (209.26 - 211.48) ms212.73 ± (211.55 - 213.90) ms+1.1%✅⬆️
process.time_to_main_ms468.62 ± (467.49 - 469.76) ms475.50 ± (474.25 - 476.75) ms+1.5%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed48.07 ± (48.05 - 48.10) MB48.10 ± (48.07 - 48.12) MB+0.0%✅⬆️
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)+0.0%✅⬆️
.NET 8 - Baseline
process.internal_duration_ms20.10 ± (20.02 - 20.18) ms20.28 ± (20.20 - 20.36) ms+0.9%✅⬆️
process.time_to_main_ms76.32 ± (75.89 - 76.74) ms77.62 ± (77.25 - 78.00) ms+1.7%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.67 ± (7.66 - 7.67) MB7.66 ± (7.65 - 7.66) MB-0.1%
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 8 - Bailout
process.internal_duration_ms20.21 ± (20.12 - 20.30) ms20.12 ± (20.05 - 20.19) ms-0.4%
process.time_to_main_ms79.14 ± (78.68 - 79.61) ms78.28 ± (77.87 - 78.69) ms-1.1%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.73 ± (7.73 - 7.74) MB7.73 ± (7.72 - 7.73) MB-0.1%
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms195.66 ± (194.44 - 196.87) ms198.65 ± (197.45 - 199.84) ms+1.5%✅⬆️
process.time_to_main_ms462.72 ± (461.27 - 464.18) ms468.03 ± (466.70 - 469.35) ms+1.1%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed36.50 ± (36.46 - 36.54) MB36.55 ± (36.51 - 36.59) MB+0.1%✅⬆️
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
duration195.26 ± (195.45 - 196.45) ms197.66 ± (197.85 - 198.97) ms+1.2%✅⬆️
.NET Framework 4.8 - Bailout
duration198.07 ± (197.62 - 198.42) ms201.40 ± (201.30 - 202.21) ms+1.7%✅⬆️
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1124.34 ± (1129.26 - 1138.84) ms1137.97 ± (1141.67 - 1150.91) ms+1.2%✅⬆️
.NET Core 3.1 - Baseline
process.internal_duration_ms190.85 ± (190.41 - 191.29) ms192.36 ± (191.87 - 192.85) ms+0.8%✅⬆️
process.time_to_main_ms81.49 ± (81.28 - 81.70) ms82.08 ± (81.87 - 82.30) ms+0.7%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.05 ± (16.03 - 16.08) MB16.12 ± (16.11 - 16.14) MB+0.4%✅⬆️
runtime.dotnet.threads.count20 ± (19 - 20)20 ± (20 - 20)+0.3%✅⬆️
.NET Core 3.1 - Bailout
process.internal_duration_ms190.89 ± (190.41 - 191.36) ms190.14 ± (189.71 - 190.58) ms-0.4%
process.time_to_main_ms83.15 ± (82.95 - 83.34) ms83.15 ± (82.95 - 83.35) ms+0.0%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.07 ± (16.05 - 16.10) MB16.20 ± (16.17 - 16.22) MB+0.8%✅⬆️
runtime.dotnet.threads.count21 ± (21 - 21)21 ± (20 - 21)-0.2%
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms402.40 ± (399.66 - 405.15) ms402.52 ± (399.81 - 405.23) ms+0.0%✅⬆️
process.time_to_main_ms479.53 ± (478.75 - 480.31) ms480.48 ± (479.84 - 481.13) ms+0.2%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed58.70 ± (58.57 - 58.83) MB58.82 ± (58.71 - 58.94) MB+0.2%✅⬆️
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)+0.0%✅⬆️
.NET 6 - Baseline
process.internal_duration_ms195.45 ± (195.02 - 195.87) ms195.53 ± (195.06 - 195.99) ms+0.0%✅⬆️
process.time_to_main_ms70.74 ± (70.52 - 70.95) ms71.38 ± (71.16 - 71.60) ms+0.9%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.32 ± (16.29 - 16.34) MB16.38 ± (16.34 - 16.42) MB+0.4%✅⬆️
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (19 - 19)+0.8%✅⬆️
.NET 6 - Bailout
process.internal_duration_ms195.27 ± (194.80 - 195.74) ms194.97 ± (194.49 - 195.46) ms-0.2%
process.time_to_main_ms71.74 ± (71.57 - 71.90) ms72.40 ± (72.20 - 72.61) ms+0.9%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.39 ± (16.36 - 16.42) MB16.39 ± (16.36 - 16.42) MB-0.0%
runtime.dotnet.threads.count20 ± (20 - 20)20 ± (20 - 20)-0.5%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms415.75 ± (413.40 - 418.10) ms409.53 ± (407.70 - 411.36) ms-1.5%
process.time_to_main_ms448.20 ± (447.44 - 448.95) ms447.31 ± (446.54 - 448.08) ms-0.2%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed59.39 ± (59.30 - 59.47) MB59.17 ± (59.04 - 59.29) MB-0.4%
runtime.dotnet.threads.count30 ± (29 - 30)30 ± (29 - 30)+0.1%✅⬆️
.NET 8 - Baseline
process.internal_duration_ms194.03 ± (193.56 - 194.51) ms192.89 ± (192.44 - 193.33) ms-0.6%
process.time_to_main_ms70.41 ± (70.21 - 70.60) ms69.96 ± (69.78 - 70.15) ms-0.6%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.68 ± (11.66 - 11.70) MB11.73 ± (11.71 - 11.76) MB+0.5%✅⬆️
runtime.dotnet.threads.count18 ± (18 - 18)18 ± (18 - 18)-0.3%
.NET 8 - Bailout
process.internal_duration_ms192.22 ± (191.75 - 192.69) ms192.64 ± (192.13 - 193.15) ms+0.2%✅⬆️
process.time_to_main_ms70.87 ± (70.71 - 71.03) ms71.11 ± (70.95 - 71.26) ms+0.3%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.78 ± (11.75 - 11.81) MB11.75 ± (11.72 - 11.78) MB-0.3%
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (19 - 19)+0.1%✅⬆️
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms376.07 ± (374.07 - 378.07) ms372.94 ± (371.38 - 374.49) ms-0.8%
process.time_to_main_ms442.81 ± (441.02 - 444.60) ms437.80 ± (437.03 - 438.58) ms-1.1%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed48.21 ± (48.10 - 48.33) MB47.92 ± (47.88 - 47.95) MB-0.6%
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)+0.7%✅⬆️
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 (7936) - mean (77ms)  : 71, 84
    master - mean (78ms)  : 71, 85

    section Bailout
    This PR (7936) - mean (81ms)  : 76, 86
    master - mean (80ms)  : 74, 86

    section CallTarget+Inlining+NGEN
    This PR (7936) - mean (1,090ms)  : 1008, 1171
    master - mean (1,074ms)  : 1001, 1148

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 (7936) - mean (119ms)  : 111, 127
    master - mean (121ms)  : 109, 132

    section Bailout
    This PR (7936) - mean (121ms)  : 113, 128
    master - mean (121ms)  : 113, 129

    section CallTarget+Inlining+NGEN
    This PR (7936) - mean (774ms)  : 742, 807
    master - mean (762ms)  : 720, 804

Loading
FakeDbCommand (.NET 6)
gantt
    title Execution time (ms) FakeDbCommand (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7936) - mean (107ms)  : 100, 114
    master - mean (104ms)  : 96, 112

    section Bailout
    This PR (7936) - mean (108ms)  : 102, 115
    master - mean (107ms)  : 97, 116

    section CallTarget+Inlining+NGEN
    This PR (7936) - mean (716ms)  : 686, 747
    master - mean (707ms)  : 669, 744

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

    section Bailout
    This PR (7936) - mean (107ms)  : 99, 115
    master - mean (108ms)  : 100, 117

    section CallTarget+Inlining+NGEN
    This PR (7936) - mean (706ms)  : 671, 740
    master - mean (699ms)  : 661, 737

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 (7936) - mean (198ms)  : 190, 207
    master - mean (196ms)  : 190, 202

    section Bailout
    This PR (7936) - mean (202ms)  : 196, 207
    master - mean (198ms)  : 194, 202

    section CallTarget+Inlining+NGEN
    This PR (7936) - mean (1,146ms)  : 1077, 1215
    master - mean (1,134ms)  : 1063, 1205

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 (7936) - mean (283ms)  : 271, 295
    master - mean (281ms)  : 274, 289

    section Bailout
    This PR (7936) - mean (282ms)  : 275, 288
    master - mean (283ms)  : 275, 290

    section CallTarget+Inlining+NGEN
    This PR (7936) - mean (923ms)  : 881, 966
    master - mean (923ms)  : 879, 967

Loading
HttpMessageHandler (.NET 6)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7936) - mean (275ms)  : 269, 281
    master - mean (275ms)  : 268, 281

    section Bailout
    This PR (7936) - mean (276ms)  : 267, 285
    master - mean (275ms)  : 268, 282

    section CallTarget+Inlining+NGEN
    This PR (7936) - mean (891ms)  : 856, 926
    master - mean (902ms)  : 854, 949

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

    section Bailout
    This PR (7936) - mean (273ms)  : 267, 279
    master - mean (273ms)  : 267, 279

    section CallTarget+Inlining+NGEN
    This PR (7936) - mean (843ms)  : 811, 874
    master - mean (859ms)  : 775, 944

Loading

@pr-commenter
Copy link

pr-commenter bot commented Dec 9, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #7936 compared to master:

  • 2 benchmarks are slower, with geometric mean 1.709
  • 5 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 ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 11.1μs 52.4ns 203ns 0 0 0 5.51 KB
master StartStopWithChild netcoreapp3.1 14.4μs 22.1ns 85.5ns 0 0 0 5.71 KB
master StartStopWithChild net472 22.1μs 113ns 532ns 0.859 0.322 0 6 KB
#7936 StartStopWithChild net6.0 11μs 59ns 334ns 0 0 0 5.51 KB
#7936 StartStopWithChild netcoreapp3.1 14.1μs 71.8ns 337ns 0 0 0 5.71 KB
#7936 StartStopWithChild net472 22.4μs 126ns 785ns 1.06 0.354 0.118 5.98 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 1.3ms 1.5μs 5.8μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.36ms 132ns 513ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.71ms 761ns 2.95μs 0 0 0 3.26 KB
#7936 WriteAndFlushEnrichedTraces net6.0 1.24ms 216ns 837ns 0 0 0 2.7 KB
#7936 WriteAndFlushEnrichedTraces netcoreapp3.1 1.37ms 109ns 421ns 0 0 0 2.7 KB
#7936 WriteAndFlushEnrichedTraces net472 1.72ms 1.48μs 5.72μs 0 0 0 3.26 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.11μs 5.97ns 32.2ns 0 0 0 1.22 KB
master AllCycleSimpleBody netcoreapp3.1 1.42μs 1.84ns 7.14ns 0 0 0 1.2 KB
master AllCycleSimpleBody net472 1.01μs 1.15ns 3.97ns 0.192 0 0 1.23 KB
master AllCycleMoreComplexBody net6.0 7.19μs 38.3ns 195ns 0 0 0 4.72 KB
master AllCycleMoreComplexBody netcoreapp3.1 9.06μs 45.1ns 191ns 0 0 0 4.62 KB
master AllCycleMoreComplexBody net472 7.87μs 4.29ns 16.6ns 0.748 0 0 4.74 KB
master ObjectExtractorSimpleBody net6.0 324ns 1.62ns 7.25ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 393ns 2.12ns 12ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 306ns 0.106ns 0.412ns 0.0431 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.35μs 31.9ns 146ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.8μs 40.1ns 179ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.83μs 6.09ns 23.6ns 0.582 0 0 3.8 KB
#7936 AllCycleSimpleBody net6.0 1.11μs 6.17ns 40.9ns 0 0 0 1.22 KB
#7936 AllCycleSimpleBody netcoreapp3.1 1.37μs 7.7ns 48.1ns 0 0 0 1.2 KB
#7936 AllCycleSimpleBody net472 1μs 0.149ns 0.578ns 0.19 0 0 1.23 KB
#7936 AllCycleMoreComplexBody net6.0 7.23μs 11.1ns 43ns 0 0 0 4.72 KB
#7936 AllCycleMoreComplexBody netcoreapp3.1 9.24μs 36.7ns 142ns 0 0 0 4.62 KB
#7936 AllCycleMoreComplexBody net472 7.72μs 9.1ns 35.2ns 0.735 0 0 4.74 KB
#7936 ObjectExtractorSimpleBody net6.0 312ns 1.8ns 13.7ns 0 0 0 280 B
#7936 ObjectExtractorSimpleBody netcoreapp3.1 396ns 2.17ns 13.2ns 0 0 0 272 B
#7936 ObjectExtractorSimpleBody net472 298ns 0.0259ns 0.1ns 0.0435 0 0 281 B
#7936 ObjectExtractorMoreComplexBody net6.0 6.34μs 15.2ns 58.9ns 0 0 0 3.78 KB
#7936 ObjectExtractorMoreComplexBody netcoreapp3.1 7.93μs 40.9ns 196ns 0 0 0 3.69 KB
#7936 ObjectExtractorMoreComplexBody net472 6.68μs 2.19ns 8.19ns 0.602 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 75.6μs 188ns 727ns 0 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 97.3μs 229ns 885ns 0 0 0 32.4 KB
master EncodeArgs net472 109μs 69.7ns 270ns 4.94 0 0 32.5 KB
master EncodeLegacyArgs net6.0 145μs 11.4ns 39.6ns 0 0 0 2.14 KB
master EncodeLegacyArgs netcoreapp3.1 201μs 139ns 539ns 0 0 0 2.14 KB
master EncodeLegacyArgs net472 263μs 28.4ns 110ns 0 0 0 2.14 KB
#7936 EncodeArgs net6.0 76.4μs 62.1ns 233ns 0 0 0 32.4 KB
#7936 EncodeArgs netcoreapp3.1 96.9μs 309ns 1.2μs 0 0 0 32.4 KB
#7936 EncodeArgs net472 118μs 13.5ns 52.1ns 4.72 0 0 32.5 KB
#7936 EncodeLegacyArgs net6.0 147μs 8.22ns 29.6ns 0 0 0 2.14 KB
#7936 EncodeLegacyArgs netcoreapp3.1 198μs 78.4ns 304ns 0 0 0 2.14 KB
#7936 EncodeLegacyArgs net472 266μs 43.2ns 167ns 0 0 0 2.15 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 435μs 1.15μs 3.98μs 0 0 0 4.55 KB
master RunWafRealisticBenchmark netcoreapp3.1 450μs 2.62μs 23.7μs 0 0 0 4.48 KB
master RunWafRealisticBenchmark net472 487μs 534ns 2μs 0 0 0 0 b
master RunWafRealisticBenchmarkWithAttack net6.0 315μs 1.53μs 6.13μs 0 0 0 2.24 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 371μs 4.37μs 42.5μs 0 0 0 2.22 KB
master RunWafRealisticBenchmarkWithAttack net472 365μs 422ns 1.52μs 0 0 0 0 b
#7936 RunWafRealisticBenchmark net6.0 446μs 2.57μs 19.4μs 0 0 0 4.55 KB
#7936 RunWafRealisticBenchmark netcoreapp3.1 457μs 2.94μs 28.1μs 0 0 0 4.48 KB
#7936 RunWafRealisticBenchmark net472 488μs 374ns 1.35μs 0 0 0 0 b
#7936 RunWafRealisticBenchmarkWithAttack net6.0 315μs 1.23μs 4.42μs 0 0 0 2.24 KB
#7936 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 474μs 19.4μs 194μs 0 0 0 2.22 KB
#7936 RunWafRealisticBenchmarkWithAttack net472 362μs 695ns 2.69μs 0 0 0 0 b
Benchmarks.Trace.AspNetCoreBenchmark - Unknown 🤷 Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 84.5μs 112ns 402ns 0 0 0 18.97 KB
master SendRequest netcoreapp3.1 96.9μs 440ns 3.73μs 0 0 0 21.19 KB
master SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#7936 SendRequest net6.0 86.3μs 300ns 1.08μs 0 0 0 18.97 KB
#7936 SendRequest netcoreapp3.1 97.5μs 444ns 2.03μs 0 0 0 21.18 KB
#7936 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #7936

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CharSliceBenchmark.OriginalCharSlice‑netcoreapp3.1 1.803 2,170,450.00 3,913,300.00
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑netcoreapp3.1 1.621 1,722,300.00 2,791,000.00

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master OriginalCharSlice net6.0 2ms 992ns 3.84μs 0 0 0 640 KB
master OriginalCharSlice netcoreapp3.1 2.17ms 4.16μs 26.3μs 0 0 0 640 KB
master OriginalCharSlice net472 2.59ms 1.32μs 5.13μs 0 0 0 638.98 KB
master OptimizedCharSlice net6.0 1.39ms 693ns 2.4μs 0 0 0 0 b
master OptimizedCharSlice netcoreapp3.1 1.73ms 6.07μs 39.8μs 0 0 0 0 b
master OptimizedCharSlice net472 1.92ms 1.29μs 5.01μs 0 0 0 0 b
master OptimizedCharSliceWithPool net6.0 1.02ms 303ns 1.13μs 0 0 0 0 b
master OptimizedCharSliceWithPool netcoreapp3.1 1.88ms 1.52μs 5.88μs 0 0 0 0 b
master OptimizedCharSliceWithPool net472 1.14ms 663ns 2.57μs 0 0 0 0 b
#7936 OriginalCharSlice net6.0 1.91ms 865ns 3.24μs 0 0 0 640 KB
#7936 OriginalCharSlice netcoreapp3.1 3.91ms 1.28μs 4.79μs 0 0 0 640 KB
#7936 OriginalCharSlice net472 2.61ms 856ns 3.2μs 0 0 0 638.98 KB
#7936 OptimizedCharSlice net6.0 1.44ms 546ns 2.12μs 0 0 0 0 b
#7936 OptimizedCharSlice netcoreapp3.1 2.79ms 862ns 3.11μs 0 0 0 0 b
#7936 OptimizedCharSlice net472 1.99ms 669ns 2.5μs 0 0 0 0 b
#7936 OptimizedCharSliceWithPool net6.0 1.01ms 307ns 1.11μs 0 0 0 0 b
#7936 OptimizedCharSliceWithPool netcoreapp3.1 1.87ms 2.24μs 8.67μs 0 0 0 0 b
#7936 OptimizedCharSliceWithPool net472 1.15ms 651ns 2.52μs 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7936

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 41.82 KB 43.12 KB 1.31 KB 3.12%
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 55.21 KB 56.46 KB 1.24 KB 2.25%
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 41.62 KB 41.93 KB 307 B 0.74%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 689μs 2.93μs 11.4μs 0 0 0 41.62 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 782μs 1.51μs 5.86μs 0 0 0 41.82 KB
master WriteAndFlushEnrichedTraces net472 856μs 3.4μs 12.7μs 4.46 0 0 55.21 KB
#7936 WriteAndFlushEnrichedTraces net6.0 675μs 1.5μs 5.41μs 0 0 0 41.93 KB
#7936 WriteAndFlushEnrichedTraces netcoreapp3.1 722μs 3.86μs 36.5μs 0 0 0 43.12 KB
#7936 WriteAndFlushEnrichedTraces net472 871μs 3.48μs 13μs 8.33 4.17 0 56.46 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.84μs 0.432ns 1.67ns 0 0 0 968 B
master ExecuteNonQuery netcoreapp3.1 2.51μs 12ns 46.5ns 0 0 0 960 B
master ExecuteNonQuery net472 2.63μs 1.31ns 5.07ns 0.145 0 0 931 B
#7936 ExecuteNonQuery net6.0 1.87μs 8.34ns 32.3ns 0 0 0 968 B
#7936 ExecuteNonQuery netcoreapp3.1 2.55μs 6.2ns 24ns 0 0 0 960 B
#7936 ExecuteNonQuery net472 2.76μs 4.5ns 17.4ns 0.137 0 0 931 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.74μs 9.08ns 46.3ns 0 0 0 952 B
master CallElasticsearch netcoreapp3.1 2.21μs 1.22ns 4.74ns 0 0 0 968 B
master CallElasticsearch net472 3.33μs 2.15ns 8.32ns 0.15 0 0 955 B
master CallElasticsearchAsync net6.0 1.79μs 2.28ns 8.83ns 0 0 0 928 B
master CallElasticsearchAsync netcoreapp3.1 2.42μs 11.8ns 50.2ns 0 0 0 1.02 KB
master CallElasticsearchAsync net472 3.59μs 9.61ns 37.2ns 0.144 0 0 1.01 KB
#7936 CallElasticsearch net6.0 1.78μs 8.68ns 34.7ns 0 0 0 952 B
#7936 CallElasticsearch netcoreapp3.1 2.36μs 4.06ns 15.7ns 0 0 0 968 B
#7936 CallElasticsearch net472 3.35μs 3.4ns 13.2ns 0.135 0 0 955 B
#7936 CallElasticsearchAsync net6.0 1.74μs 7.19ns 27.9ns 0 0 0 928 B
#7936 CallElasticsearchAsync netcoreapp3.1 2.42μs 5.7ns 22.1ns 0 0 0 1.02 KB
#7936 CallElasticsearchAsync net472 3.5μs 2.5ns 9.69ns 0.157 0 0 1.01 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.97μs 7.27ns 28.2ns 0 0 0 896 B
master ExecuteAsync netcoreapp3.1 2.36μs 6.06ns 22.7ns 0 0 0 896 B
master ExecuteAsync net472 2.62μs 5.48ns 21.2ns 0.129 0 0 858 B
#7936 ExecuteAsync net6.0 1.79μs 1.19ns 4.46ns 0 0 0 896 B
#7936 ExecuteAsync netcoreapp3.1 2.35μs 8.17ns 31.6ns 0 0 0 896 B
#7936 ExecuteAsync net472 2.49μs 0.667ns 2.58ns 0.125 0 0 858 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.23μs 4.27ns 15.4ns 0 0 0 2.29 KB
master SendAsync netcoreapp3.1 8.54μs 20.6ns 79.8ns 0 0 0 2.83 KB
master SendAsync net472 12.2μs 9.46ns 36.6ns 0.488 0 0 3.08 KB
#7936 SendAsync net6.0 7.11μs 14.4ns 53.9ns 0 0 0 2.29 KB
#7936 SendAsync netcoreapp3.1 8.4μs 16.6ns 64.4ns 0 0 0 2.83 KB
#7936 SendAsync net472 12.1μs 5.17ns 20ns 0.483 0 0 3.08 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7936

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 257.78 KB 277.18 KB 19.4 KB 7.53%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net472 270.34 KB 278.53 KB 8.19 KB 3.03%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 44.1μs 218ns 924ns 0 0 0 42.51 KB
master StringConcatBenchmark netcoreapp3.1 49.2μs 184ns 664ns 0 0 0 42.54 KB
master StringConcatBenchmark net472 57.8μs 291ns 1.24μs 0 0 0 49.15 KB
master StringConcatAspectBenchmark net6.0 466μs 2.11μs 7.61μs 0 0 0 257.78 KB
master StringConcatAspectBenchmark netcoreapp3.1 472μs 6.25μs 62.2μs 0 0 0 277.49 KB
master StringConcatAspectBenchmark net472 396μs 1.93μs 8.19μs 0 0 0 270.34 KB
#7936 StringConcatBenchmark net6.0 43.6μs 204ns 814ns 0 0 0 42.51 KB
#7936 StringConcatBenchmark netcoreapp3.1 49.9μs 281ns 1.86μs 0 0 0 42.54 KB
#7936 StringConcatBenchmark net472 58.7μs 115ns 413ns 0 0 0 49.15 KB
#7936 StringConcatAspectBenchmark net6.0 484μs 2.04μs 7.35μs 0 0 0 277.18 KB
#7936 StringConcatAspectBenchmark netcoreapp3.1 558μs 1.41μs 4.89μs 0 0 0 278.78 KB
#7936 StringConcatAspectBenchmark net472 403μs 1.98μs 7.91μ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 0.263ns 1.02ns 0 0 0 1.69 KB
master EnrichedLog netcoreapp3.1 3.64μs 16.9ns 67.5ns 0 0 0 1.7 KB
master EnrichedLog net472 4.02μs 4.34ns 16.8ns 0.242 0 0 1.6 KB
#7936 EnrichedLog net6.0 2.63μs 3.1ns 12ns 0 0 0 1.69 KB
#7936 EnrichedLog netcoreapp3.1 3.47μs 17.1ns 72.5ns 0 0 0 1.7 KB
#7936 EnrichedLog net472 4.02μs 5.24ns 20.3ns 0.241 0 0 1.6 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 126μs 110ns 397ns 0 0 0 4.31 KB
master EnrichedLog netcoreapp3.1 129μs 241ns 934ns 0 0 0 4.31 KB
master EnrichedLog net472 166μs 32.6ns 126ns 0 0 0 4.51 KB
#7936 EnrichedLog net6.0 125μs 124ns 449ns 0 0 0 4.31 KB
#7936 EnrichedLog netcoreapp3.1 129μs 136ns 528ns 0 0 0 4.31 KB
#7936 EnrichedLog net472 171μs 159ns 616ns 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.06μs 17.6ns 68.3ns 0 0 0 2.24 KB
master EnrichedLog netcoreapp3.1 7μs 26.6ns 103ns 0 0 0 2.26 KB
master EnrichedLog net472 7.44μs 6.33ns 24.5ns 0.298 0 0 2.05 KB
#7936 EnrichedLog net6.0 5.1μs 17.7ns 66ns 0 0 0 2.24 KB
#7936 EnrichedLog netcoreapp3.1 6.86μs 15.4ns 59.5ns 0 0 0 2.26 KB
#7936 EnrichedLog net472 7.55μs 3.31ns 12.8ns 0.302 0 0 2.05 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.85ns 42.9ns 0 0 0 1.12 KB
master SendReceive netcoreapp3.1 2.44μs 8.88ns 34.4ns 0 0 0 1.14 KB
master SendReceive net472 2.91μs 1.76ns 6.33ns 0.176 0 0 1.12 KB
#7936 SendReceive net6.0 1.88μs 9.82ns 46ns 0 0 0 1.12 KB
#7936 SendReceive netcoreapp3.1 2.58μs 3.07ns 11.9ns 0 0 0 1.14 KB
#7936 SendReceive net472 3.16μs 2.35ns 8.79ns 0.173 0 0 1.12 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 9.42ns 36.5ns 0 0 0 1.58 KB
master EnrichedLog netcoreapp3.1 5.47μs 11.1ns 43ns 0 0 0 1.63 KB
master EnrichedLog net472 6.56μs 12.4ns 48.1ns 0.294 0 0 2.03 KB
#7936 EnrichedLog net6.0 4.41μs 2.68ns 10.4ns 0 0 0 1.58 KB
#7936 EnrichedLog netcoreapp3.1 5.58μs 16.9ns 63.1ns 0 0 0 1.63 KB
#7936 EnrichedLog net472 6.64μs 9.54ns 37ns 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 759ns 4.13ns 22.6ns 0 0 0 520 B
master StartFinishSpan netcoreapp3.1 978ns 1.23ns 4.77ns 0 0 0 520 B
master StartFinishSpan net472 884ns 0.522ns 2.02ns 0.0795 0 0 522 B
master StartFinishScope net6.0 922ns 2.71ns 10.5ns 0 0 0 640 B
master StartFinishScope netcoreapp3.1 1.12μs 3.55ns 13.3ns 0 0 0 640 B
master StartFinishScope net472 1.08μs 0.534ns 2.07ns 0.0931 0 0 602 B
master StartFinishTwoScopes net6.0 1.75μs 3.73ns 13.9ns 0 0 0 1.19 KB
master StartFinishTwoScopes netcoreapp3.1 2.22μs 11.5ns 52.8ns 0 0 0 1.19 KB
master StartFinishTwoScopes net472 2.12μs 2.73ns 10.6ns 0.17 0 0 1.08 KB
#7936 StartFinishSpan net6.0 798ns 0.263ns 1.02ns 0 0 0 520 B
#7936 StartFinishSpan netcoreapp3.1 953ns 4.34ns 16.8ns 0 0 0 520 B
#7936 StartFinishSpan net472 888ns 0.14ns 0.542ns 0.0801 0 0 522 B
#7936 StartFinishScope net6.0 914ns 4.49ns 18.5ns 0 0 0 640 B
#7936 StartFinishScope netcoreapp3.1 1.15μs 5.88ns 29.4ns 0 0 0 640 B
#7936 StartFinishScope net472 1.07μs 0.592ns 2.29ns 0.0916 0 0 602 B
#7936 StartFinishTwoScopes net6.0 1.88μs 4.29ns 16.6ns 0 0 0 1.19 KB
#7936 StartFinishTwoScopes netcoreapp3.1 2.27μs 11.5ns 53.9ns 0 0 0 1.19 KB
#7936 StartFinishTwoScopes net472 2.13μs 1.34ns 5.18ns 0.171 0 0 1.08 KB
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.09μs 4.82ns 18.7ns 0 0 0 640 B
master RunOnMethodBegin netcoreapp3.1 1.41μs 7.35ns 36.8ns 0 0 0 640 B
master RunOnMethodBegin net472 1.42μs 0.409ns 1.47ns 0.0926 0 0 602 B
#7936 RunOnMethodBegin net6.0 1.06μs 5.19ns 22.6ns 0 0 0 640 B
#7936 RunOnMethodBegin netcoreapp3.1 1.37μs 5.12ns 19.8ns 0 0 0 640 B
#7936 RunOnMethodBegin net472 1.42μs 1.41ns 5.44ns 0.0926 0 0 602 B

@andrewlock andrewlock enabled auto-merge (squash) December 10, 2025 10:13
@andrewlock andrewlock merged commit d4d5d72 into master Dec 10, 2025
155 checks passed
@andrewlock andrewlock deleted the andrew/sqlite-10 branch December 10, 2025 10:39
@github-actions github-actions bot added this to the vNext-v3 milestone Dec 10, 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:integrations area:tracer The core tracer library (Datadog.Trace, does not include OpenTracing, native code, or integrations)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants