Skip to content

Conversation

igoragoli
Copy link
Contributor

Summary of changes

Reason for change

Implementation details

Test coverage

Other details

@pr-commenter
Copy link

pr-commenter bot commented Sep 30, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #7584 compared to master:

  • All benchmarks have the same speed
  • All benchmarks have the same 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
#7584 StartStopWithChild net6.0 10.4μs 58.6ns 397ns 0 0 0 5.5 KB
#7584 StartStopWithChild netcoreapp3.1 14.3μs 67.4ns 269ns 0 0 0 5.74 KB
#7584 StartStopWithChild net472 22.2μs 116ns 545ns 0.85 0.319 0 5.99 KB
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
#7584 WriteAndFlushEnrichedTraces net6.0 930μs 293ns 1.13μs 0 0 0 2.71 KB
#7584 WriteAndFlushEnrichedTraces netcoreapp3.1 1.01ms 181ns 702ns 0 0 0 2.7 KB
#7584 WriteAndFlushEnrichedTraces net472 1.18ms 512ns 1.98μ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
#7584 AllCycleSimpleBody net6.0 326μs 1.68μs 8.06μs 0 0 0 175.82 KB
#7584 AllCycleSimpleBody netcoreapp3.1 506μs 1.44μs 5.57μs 0 0 0 177.99 KB
#7584 AllCycleSimpleBody net472 445μs 100ns 374ns 30.2 0 0 200.04 KB
#7584 AllCycleMoreComplexBody net6.0 341μs 1.53μs 6.86μs 0 0 0 179.32 KB
#7584 AllCycleMoreComplexBody netcoreapp3.1 505μs 1.57μs 5.89μs 0 0 0 181.41 KB
#7584 AllCycleMoreComplexBody net472 454μs 113ns 423ns 31.2 0 0 203.56 KB
#7584 ObjectExtractorSimpleBody net6.0 324ns 0.123ns 0.46ns 0 0 0 280 B
#7584 ObjectExtractorSimpleBody netcoreapp3.1 397ns 2.13ns 11.1ns 0 0 0 272 B
#7584 ObjectExtractorSimpleBody net472 302ns 0.039ns 0.151ns 0.0441 0 0 281 B
#7584 ObjectExtractorMoreComplexBody net6.0 6.29μs 29.2ns 113ns 0 0 0 3.78 KB
#7584 ObjectExtractorMoreComplexBody netcoreapp3.1 7.93μs 3.81ns 14.3ns 0 0 0 3.69 KB
#7584 ObjectExtractorMoreComplexBody net472 6.75μs 8.31ns 32.2ns 0.574 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
#7584 EncodeArgs net6.0 78.5μs 226ns 816ns 0 0 0 32.4 KB
#7584 EncodeArgs netcoreapp3.1 97.5μs 225ns 873ns 0 0 0 32.4 KB
#7584 EncodeArgs net472 109μs 11.9ns 44.6ns 4.94 0 0 32.51 KB
#7584 EncodeLegacyArgs net6.0 147μs 18.8ns 72.9ns 0 0 0 2.15 KB
#7584 EncodeLegacyArgs netcoreapp3.1 201μs 95.6ns 370ns 0 0 0 2.14 KB
#7584 EncodeLegacyArgs net472 263μs 45.8ns 165ns 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
#7584 RunWafRealisticBenchmark net6.0 399μs 79.9ns 299ns 0 0 0 4.55 KB
#7584 RunWafRealisticBenchmark netcoreapp3.1 412μs 229ns 793ns 0 0 0 4.48 KB
#7584 RunWafRealisticBenchmark net472 428μs 39.8ns 144ns 0 0 0 4.66 KB
#7584 RunWafRealisticBenchmarkWithAttack net6.0 285μs 54.3ns 203ns 0 0 0 2.24 KB
#7584 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 297μs 55.7ns 193ns 0 0 0 2.22 KB
#7584 RunWafRealisticBenchmarkWithAttack net472 309μs 53.1ns 206ns 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
#7584 SendRequest net6.0 61.5μs 44.1ns 159ns 0 0 0 14.67 KB
#7584 SendRequest netcoreapp3.1 71.6μs 89.5ns 335ns 0 0 0 17.42 KB
#7584 SendRequest net472 0.000744ns 0.000402ns 0.00156ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
#7584 OriginalCharSlice net6.0 2ms 1.23μs 4.59μs 0 0 0 640.01 KB
#7584 OriginalCharSlice netcoreapp3.1 2.14ms 9.68μs 38.7μs 0 0 0 640 KB
#7584 OriginalCharSlice net472 2.63ms 146ns 547ns 100 0 0 641.95 KB
#7584 OptimizedCharSlice net6.0 1.42ms 313ns 1.21μs 0 0 0 7 B
#7584 OptimizedCharSlice netcoreapp3.1 1.71ms 370ns 1.43μs 0 0 0 1 B
#7584 OptimizedCharSlice net472 2.03ms 335ns 1.3μs 0 0 0 73 B
#7584 OptimizedCharSliceWithPool net6.0 862μs 22.9ns 88.9ns 0 0 0 1 B
#7584 OptimizedCharSliceWithPool netcoreapp3.1 817μs 99.3ns 385ns 0 0 0 1 B
#7584 OptimizedCharSliceWithPool net472 1.14ms 166ns 622ns 0 0 0 47 B
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
#7584 WriteAndFlushEnrichedTraces net6.0 765μs 4.11μs 23.3μs 0 0 0 41.66 KB
#7584 WriteAndFlushEnrichedTraces netcoreapp3.1 738μs 4.04μs 24.2μs 0 0 0 42.16 KB
#7584 WriteAndFlushEnrichedTraces net472 858μs 3.27μs 12.7μs 8.33 0 0 56.01 KB
Benchmarks.Trace.DbCommandBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
#7584 ExecuteNonQuery net6.0 1.88μs 3.04ns 11.8ns 0 0 0 1.02 KB
#7584 ExecuteNonQuery netcoreapp3.1 2.51μs 11.5ns 44.4ns 0 0 0 1.02 KB
#7584 ExecuteNonQuery net472 2.85μs 2.75ns 10.3ns 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
#7584 CallElasticsearch net6.0 1.79μs 8.64ns 37.6ns 0 0 0 1.03 KB
#7584 CallElasticsearch netcoreapp3.1 2.29μs 6.04ns 22.6ns 0 0 0 1.03 KB
#7584 CallElasticsearch net472 3.51μs 2.69ns 10.4ns 0.158 0 0 1.04 KB
#7584 CallElasticsearchAsync net6.0 1.82μs 9.07ns 41.5ns 0 0 0 1.01 KB
#7584 CallElasticsearchAsync netcoreapp3.1 2.38μs 5ns 19.4ns 0 0 0 1.08 KB
#7584 CallElasticsearchAsync net472 3.82μs 1.77ns 6.12ns 0.172 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
#7584 ExecuteAsync net6.0 1.81μs 4.29ns 16.6ns 0 0 0 952 B
#7584 ExecuteAsync netcoreapp3.1 2.3μs 11.1ns 44.2ns 0 0 0 952 B
#7584 ExecuteAsync net472 2.53μs 0.573ns 2.15ns 0.139 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
#7584 SendAsync net6.0 6.87μs 9.38ns 36.3ns 0 0 0 2.36 KB
#7584 SendAsync netcoreapp3.1 8.59μs 18ns 67.4ns 0 0 0 2.9 KB
#7584 SendAsync net472 12μs 11.2ns 43.4ns 0.481 0 0 3.18 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
#7584 StringConcatBenchmark net6.0 44.1μs 225ns 2.03μs 0 0 0 43.83 KB
#7584 StringConcatBenchmark netcoreapp3.1 49.6μs 303ns 2.88μs 0 0 0 43.86 KB
#7584 StringConcatBenchmark net472 56.2μs 104ns 388ns 0 0 0 57.34 KB
#7584 StringConcatAspectBenchmark net6.0 464μs 2.04μs 7.35μs 0 0 0 276.3 KB
#7584 StringConcatAspectBenchmark netcoreapp3.1 504μs 2.07μs 8.53μs 0 0 0 258.13 KB
#7584 StringConcatAspectBenchmark net472 393μs 2.02μs 14μ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
#7584 EnrichedLog net6.0 2.5μs 0.779ns 2.81ns 0 0 0 1.7 KB
#7584 EnrichedLog netcoreapp3.1 3.59μs 15.5ns 60ns 0 0 0 1.7 KB
#7584 EnrichedLog net472 3.7μs 3.11ns 11.6ns 0.257 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
#7584 EnrichedLog net6.0 123μs 47.2ns 176ns 0 0 0 4.31 KB
#7584 EnrichedLog netcoreapp3.1 129μs 210ns 812ns 0 0 0 4.31 KB
#7584 EnrichedLog net472 167μs 37.3ns 135ns 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
#7584 EnrichedLog net6.0 4.89μs 14.7ns 56.9ns 0 0 0 2.26 KB
#7584 EnrichedLog netcoreapp3.1 6.63μs 12.9ns 50.1ns 0 0 0 2.26 KB
#7584 EnrichedLog net472 7.22μs 7.54ns 29.2ns 0.326 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
#7584 SendReceive net6.0 1.97μs 8.98ns 34.8ns 0 0 0 1.2 KB
#7584 SendReceive netcoreapp3.1 2.52μs 12.4ns 54ns 0 0 0 1.2 KB
#7584 SendReceive net472 3.12μs 1.55ns 6ns 0.187 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
#7584 EnrichedLog net6.0 4.14μs 2.83ns 9.81ns 0 0 0 1.58 KB
#7584 EnrichedLog netcoreapp3.1 5.45μs 15.4ns 59.6ns 0 0 0 1.63 KB
#7584 EnrichedLog net472 6.49μs 5.65ns 21.1ns 0.293 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
#7584 StartFinishSpan net6.0 741ns 4.02ns 22.7ns 0 0 0 576 B
#7584 StartFinishSpan netcoreapp3.1 944ns 5.13ns 29.9ns 0 0 0 576 B
#7584 StartFinishSpan net472 896ns 0.369ns 1.38ns 0.0903 0 0 578 B
#7584 StartFinishScope net6.0 885ns 4.63ns 23.2ns 0 0 0 696 B
#7584 StartFinishScope netcoreapp3.1 1.16μs 6.27ns 35.5ns 0 0 0 696 B
#7584 StartFinishScope net472 1.08μs 0.219ns 0.848ns 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
#7584 RunOnMethodBegin net6.0 990ns 4.78ns 20.8ns 0 0 0 696 B
#7584 RunOnMethodBegin netcoreapp3.1 1.36μs 6.62ns 28.8ns 0 0 0 696 B
#7584 RunOnMethodBegin net472 1.41μs 1.47ns 5.67ns 0.0985 0 0 658 B

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

dd-trace-dotnet-ci-bot bot commented Sep 30, 2025

Execution-Time Benchmarks Report ⏱️

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

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

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

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

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

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

    section Baseline
    This PR (7584) - mean (68ms)  : 66, 70
     .   : milestone, 68,
    master - mean (68ms)  : 65, 71
     .   : milestone, 68,

    section CallTarget+Inlining+NGEN
    This PR (7584) - mean (1,051ms)  : 1002, 1100
     .   : milestone, 1051,
    master - mean (1,044ms)  : 1011, 1076
     .   : milestone, 1044,

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

    section Baseline
    This PR (7584) - mean (106ms)  : 103, 109
     .   : milestone, 106,
    master - mean (106ms)  : 104, 108
     .   : milestone, 106,

    section CallTarget+Inlining+NGEN
    This PR (7584) - mean (745ms)  : 722, 768
     .   : milestone, 745,
    master - mean (746ms)  : 727, 764
     .   : milestone, 746,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7584) - mean (101ms)  : 100, 102
     .   : milestone, 101,
    master - mean (100ms)  : 100, 101
     .   : milestone, 100,

    section Baseline
    This PR (7584) - mean (100ms)  : 98, 102
     .   : milestone, 100,
    master - mean (100ms)  : 98, 103
     .   : milestone, 100,

    section CallTarget+Inlining+NGEN
    This PR (7584) - mean (772ms)  : 724, 819
     .   : milestone, 772,
    master - mean (775ms)  : 723, 827
     .   : milestone, 775,

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

    section Baseline
    This PR (7584) - mean (92ms)  : 90, 94
     .   : milestone, 92,
    master - mean (92ms)  : 89, 95
     .   : milestone, 92,

    section CallTarget+Inlining+NGEN
    This PR (7584) - mean (656ms)  : 640, 673
     .   : milestone, 656,
    master - mean (664ms)  : 649, 678
     .   : milestone, 664,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7584) - mean (202ms)  : 196, 209
     .   : milestone, 202,
    master - mean (200ms)  : 197, 204
     .   : milestone, 200,

    section Baseline
    This PR (7584) - mean (199ms)  : 193, 205
     .   : milestone, 199,
    master - mean (200ms)  : 189, 211
     .   : milestone, 200,

    section CallTarget+Inlining+NGEN
    This PR (7584) - mean (1,190ms)  : 1111, 1270
     .   : milestone, 1190,
    master - mean (1,199ms)  : 1130, 1268
     .   : milestone, 1199,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7584) - mean (285ms)  : 280, 289
     .   : milestone, 285,
    master - mean (286ms)  : 277, 296
     .   : milestone, 286,

    section Baseline
    This PR (7584) - mean (283ms)  : 278, 288
     .   : milestone, 283,
    master - mean (283ms)  : 275, 291
     .   : milestone, 283,

    section CallTarget+Inlining+NGEN
    This PR (7584) - mean (951ms)  : 903, 998
     .   : milestone, 951,
    master - mean (950ms)  : 902, 998
     .   : milestone, 950,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7584) - mean (289ms)  : 283, 295
     .   : milestone, 289,
    master - mean (289ms)  : 277, 301
     .   : milestone, 289,

    section Baseline
    This PR (7584) - mean (288ms)  : 281, 295
     .   : milestone, 288,
    master - mean (288ms)  : 280, 296
     .   : milestone, 288,

    section CallTarget+Inlining+NGEN
    This PR (7584) - mean (1,005ms)  : 961, 1049
     .   : milestone, 1005,
    master - mean (1,011ms)  : 953, 1069
     .   : milestone, 1011,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7584) - mean (279ms)  : 271, 288
     .   : milestone, 279,
    master - mean (276ms)  : 267, 285
     .   : milestone, 276,

    section Baseline
    This PR (7584) - mean (278ms)  : 270, 287
     .   : milestone, 278,
    master - mean (278ms)  : 269, 287
     .   : milestone, 278,

    section CallTarget+Inlining+NGEN
    This PR (7584) - mean (874ms)  : 842, 906
     .   : milestone, 874,
    master - mean (875ms)  : 847, 902
     .   : milestone, 875,

Loading

Copy link

datadog-official bot commented Sep 30, 2025

⚠️ Tests

⚠️ Warnings

🧪 1 Test failed

Limits_LargeCollection from Datadog.Trace.Tests.Debugger.DebuggerSnapshotCreatorTests (Datadog) (✨ Fix with BitsAI)
No token to close. Path ''.

ℹ️ Info

❄️ No new flaky tests detected

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: eb34ff3 | Docs | Was this helpful? Give us feedback!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant