Skip to content

Conversation

ganeshnj
Copy link
Contributor

Summary of changes

Reason for change

Implementation details

Test coverage

Other details

@github-actions github-actions bot added the area:tracer The core tracer library (Datadog.Trace, does not include OpenTracing, native code, or integrations) label Sep 11, 2025
@pr-commenter
Copy link

pr-commenter bot commented Sep 11, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #7502 compared to master:

  • 2 benchmarks are faster, with geometric mean 1.793
  • 4 benchmarks are slower, with geometric mean 1.146
  • 9 benchmarks have fewer allocations
  • 7 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.2μs 60.6ns 321ns 0 0 0 5.5 KB
master StartStopWithChild netcoreapp3.1 13.8μs 39.7ns 148ns 0 0 0 5.69 KB
master StartStopWithChild net472 22μs 125ns 872ns 0.894 0.224 0 6.08 KB
#7502 StartStopWithChild net6.0 10.3μs 57.8ns 397ns 0 0 0 5.48 KB
#7502 StartStopWithChild netcoreapp3.1 13.7μs 71ns 355ns 0 0 0 5.71 KB
#7502 StartStopWithChild net472 22μs 102ns 551ns 0.947 0.237 0 6.07 KB
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #7502

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 3.35 KB 3.31 KB -46 B -1.37%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 920μs 146ns 566ns 0 0 0 2.71 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.01ms 614ns 2.38μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.2ms 94.7ns 341ns 0 0 0 3.35 KB
#7502 WriteAndFlushEnrichedTraces net6.0 936μs 148ns 573ns 0 0 0 2.7 KB
#7502 WriteAndFlushEnrichedTraces netcoreapp3.1 1.03ms 103ns 372ns 0 0 0 2.7 KB
#7502 WriteAndFlushEnrichedTraces net472 1.2ms 291ns 1.09μs 0 0 0 3.31 KB
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Slower ⚠️ More allocations ⚠️

Slower ⚠️ in #7502

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody‑net6.0 1.175 331,115.30 388,977.59
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleMoreComplexBody‑net6.0 1.170 337,219.69 394,707.76
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 1.121 442,011.42 495,446.00
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleMoreComplexBody‑net472 1.119 451,841.29 505,427.88

More allocations ⚠️ in #7502

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 199.81 KB 204.68 KB 4.87 KB 2.44%
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleMoreComplexBody‑net472 203.32 KB 208.18 KB 4.86 KB 2.39%
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody‑net6.0 175.59 KB 179.79 KB 4.19 KB 2.39%
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody‑netcoreapp3.1 177.77 KB 182.01 KB 4.24 KB 2.39%
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleMoreComplexBody‑net6.0 179.1 KB 183.33 KB 4.23 KB 2.36%
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleMoreComplexBody‑netcoreapp3.1 181.18 KB 185.42 KB 4.24 KB 2.34%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 331μs 195ns 755ns 0 0 0 175.59 KB
master AllCycleSimpleBody netcoreapp3.1 509μs 1.15μs 4.47μs 0 0 0 177.77 KB
master AllCycleSimpleBody net472 442μs 173ns 626ns 30.2 0 0 199.81 KB
master AllCycleMoreComplexBody net6.0 337μs 242ns 936ns 0 0 0 179.1 KB
master AllCycleMoreComplexBody netcoreapp3.1 519μs 520ns 1.95μs 0 0 0 181.18 KB
master AllCycleMoreComplexBody net472 452μs 216ns 806ns 31.2 0 0 203.32 KB
master ObjectExtractorSimpleBody net6.0 330ns 1.86ns 10ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 401ns 2.19ns 13ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 300ns 0.0352ns 0.136ns 0.0444 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.29μs 4.52ns 17.5ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.68μs 36.1ns 140ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.74μs 1.96ns 7.59ns 0.572 0 0 3.8 KB
#7502 AllCycleSimpleBody net6.0 388μs 1.02μs 3.94μs 0 0 0 179.79 KB
#7502 AllCycleSimpleBody netcoreapp3.1 567μs 1.06μs 3.95μs 0 0 0 182.01 KB
#7502 AllCycleSimpleBody net472 496μs 456ns 1.77μs 32.5 0 0 204.68 KB
#7502 AllCycleMoreComplexBody net6.0 395μs 487ns 1.89μs 0 0 0 183.33 KB
#7502 AllCycleMoreComplexBody netcoreapp3.1 543μs 942ns 3.65μs 0 0 0 185.42 KB
#7502 AllCycleMoreComplexBody net472 506μs 346ns 1.3μs 32.5 0 0 208.18 KB
#7502 ObjectExtractorSimpleBody net6.0 324ns 1.63ns 7.12ns 0 0 0 280 B
#7502 ObjectExtractorSimpleBody netcoreapp3.1 399ns 2.02ns 9.67ns 0 0 0 272 B
#7502 ObjectExtractorSimpleBody net472 301ns 0.0596ns 0.231ns 0.044 0 0 281 B
#7502 ObjectExtractorMoreComplexBody net6.0 6.43μs 29.5ns 114ns 0 0 0 3.78 KB
#7502 ObjectExtractorMoreComplexBody netcoreapp3.1 7.76μs 2.06ns 7.97ns 0 0 0 3.69 KB
#7502 ObjectExtractorMoreComplexBody net472 6.7μs 2.51ns 9.73ns 0.572 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 77.1μs 52.9ns 205ns 0 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 97.3μs 223ns 862ns 0 0 0 32.4 KB
master EncodeArgs net472 108μs 14.1ns 54.5ns 4.86 0 0 32.51 KB
master EncodeLegacyArgs net6.0 146μs 48.4ns 187ns 0 0 0 2.15 KB
master EncodeLegacyArgs netcoreapp3.1 197μs 234ns 907ns 0 0 0 2.14 KB
master EncodeLegacyArgs net472 262μs 268ns 1.04μs 0 0 0 2.16 KB
#7502 EncodeArgs net6.0 77.1μs 60.2ns 233ns 0 0 0 32.4 KB
#7502 EncodeArgs netcoreapp3.1 95.8μs 381ns 1.48μs 0 0 0 32.4 KB
#7502 EncodeArgs net472 109μs 13ns 50.4ns 4.91 0 0 32.51 KB
#7502 EncodeLegacyArgs net6.0 144μs 20.5ns 74.1ns 0 0 0 2.15 KB
#7502 EncodeLegacyArgs netcoreapp3.1 196μs 98.9ns 370ns 0 0 0 2.15 KB
#7502 EncodeLegacyArgs net472 263μs 73.3ns 284ns 0 0 0 2.16 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Faster 🎉 Same allocations ✔️

Faster 🎉 in #7502

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmarkWithAttack‑netcoreapp3.1 2.461 728,415.48 296,012.72

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 391μs 51.4ns 199ns 0 0 0 4.55 KB
master RunWafRealisticBenchmark netcoreapp3.1 429μs 268ns 1μs 0 0 0 4.48 KB
master RunWafRealisticBenchmark net472 425μs 41.6ns 161ns 0 0 0 4.66 KB
master RunWafRealisticBenchmarkWithAttack net6.0 287μs 49.5ns 185ns 0 0 0 2.24 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 685μs 9.64μs 96.4μs 0 0 0 2.22 KB
master RunWafRealisticBenchmarkWithAttack net472 311μs 31.9ns 124ns 0 0 0 2.29 KB
#7502 RunWafRealisticBenchmark net6.0 406μs 35.6ns 128ns 0 0 0 4.55 KB
#7502 RunWafRealisticBenchmark netcoreapp3.1 408μs 312ns 1.21μs 0 0 0 4.48 KB
#7502 RunWafRealisticBenchmark net472 432μs 45.6ns 177ns 0 0 0 4.68 KB
#7502 RunWafRealisticBenchmarkWithAttack net6.0 287μs 103ns 384ns 0 0 0 2.24 KB
#7502 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 296μs 395ns 1.37μs 0 0 0 2.22 KB
#7502 RunWafRealisticBenchmarkWithAttack net472 308μs 24.4ns 91.4ns 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 60.4μs 52.2ns 202ns 0 0 0 14.52 KB
master SendRequest netcoreapp3.1 72μs 283ns 1.02μs 0 0 0 17.42 KB
master SendRequest net472 0.00227ns 0.00122ns 0.00473ns 0 0 0 0 b
#7502 SendRequest net6.0 60.2μs 86.6ns 324ns 0 0 0 14.52 KB
#7502 SendRequest netcoreapp3.1 72.5μs 400ns 2.43μs 0 0 0 17.42 KB
#7502 SendRequest net472 0.00555ns 0.00241ns 0.00933ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #7502

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net6.0 4 B 2 B -2 B -50.00%
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0 3 B 1 B -2 B -66.67%
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net472 73 B 0 b -73 B -100.00%
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net472 48 B 0 b -48 B -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master OriginalCharSlice net6.0 1.94ms 368ns 1.43μs 0 0 0 640.01 KB
master OriginalCharSlice netcoreapp3.1 2.12ms 5.14μs 18.5μs 0 0 0 640 KB
master OriginalCharSlice net472 2.59ms 121ns 453ns 100 0 0 641.95 KB
master OptimizedCharSlice net6.0 1.37ms 571ns 2.21μs 0 0 0 4 B
master OptimizedCharSlice netcoreapp3.1 1.71ms 2.44μs 9.46μs 0 0 0 1 B
master OptimizedCharSlice net472 1.93ms 422ns 1.63μs 0 0 0 73 B
master OptimizedCharSliceWithPool net6.0 800μs 47.6ns 184ns 0 0 0 3 B
master OptimizedCharSliceWithPool netcoreapp3.1 847μs 71.4ns 277ns 0 0 0 0 b
master OptimizedCharSliceWithPool net472 1.2ms 58.7ns 220ns 0 0 0 48 B
#7502 OriginalCharSlice net6.0 1.92ms 1.4μs 5.24μs 0 0 0 640 KB
#7502 OriginalCharSlice netcoreapp3.1 2.19ms 10.8μs 45.6μs 0 0 0 640 KB
#7502 OriginalCharSlice net472 2.71ms 424ns 1.53μs 100 0 0 641.95 KB
#7502 OptimizedCharSlice net6.0 1.36ms 342ns 1.28μs 0 0 0 2 B
#7502 OptimizedCharSlice netcoreapp3.1 1.66ms 517ns 2μs 0 0 0 1 B
#7502 OptimizedCharSlice net472 1.98ms 548ns 2.12μs 0 0 0 0 b
#7502 OptimizedCharSliceWithPool net6.0 850μs 59ns 221ns 0 0 0 1 B
#7502 OptimizedCharSliceWithPool netcoreapp3.1 797μs 102ns 383ns 0 0 0 0 b
#7502 OptimizedCharSliceWithPool net472 1.27ms 71.6ns 258ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Faster 🎉 Same allocations ✔️

Faster 🎉 in #7502

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 1.306 843,653.37 645,895.67

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 636μs 632ns 2.36μs 0 0 0 41.63 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 845μs 3.85μs 14.4μs 0 0 0 42.17 KB
master WriteAndFlushEnrichedTraces net472 953μs 2.35μs 8.79μs 8.33 0 0 56.39 KB
#7502 WriteAndFlushEnrichedTraces net6.0 654μs 734ns 2.65μs 0 0 0 41.76 KB
#7502 WriteAndFlushEnrichedTraces netcoreapp3.1 641μs 2.4μs 9.29μs 0 0 0 42.1 KB
#7502 WriteAndFlushEnrichedTraces net472 880μs 4.28μs 17.1μs 8.33 0 0 56.32 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 7.48ns 29ns 0 0 0 1.02 KB
master ExecuteNonQuery netcoreapp3.1 2.46μs 8.95ns 34.7ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.78μs 2.28ns 8.84ns 0.152 0.0139 0 987 B
#7502 ExecuteNonQuery net6.0 1.91μs 1.57ns 6.08ns 0 0 0 1.02 KB
#7502 ExecuteNonQuery netcoreapp3.1 2.53μs 12.1ns 46.8ns 0 0 0 1.02 KB
#7502 ExecuteNonQuery net472 2.81μs 2.57ns 9.96ns 0.153 0.0139 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.76μs 0.856ns 3.31ns 0 0 0 1.03 KB
master CallElasticsearch netcoreapp3.1 2.24μs 7.46ns 28.9ns 0 0 0 1.03 KB
master CallElasticsearch net472 3.49μs 1.36ns 5.26ns 0.157 0 0 1.04 KB
master CallElasticsearchAsync net6.0 1.8μs 5.98ns 23.2ns 0 0 0 1.01 KB
master CallElasticsearchAsync netcoreapp3.1 2.43μs 11.1ns 44.5ns 0 0 0 1.08 KB
master CallElasticsearchAsync net472 3.75μs 2.14ns 8.28ns 0.168 0 0 1.1 KB
#7502 CallElasticsearch net6.0 1.72μs 0.311ns 1.16ns 0 0 0 1.03 KB
#7502 CallElasticsearch netcoreapp3.1 2.33μs 10.4ns 40.2ns 0 0 0 1.03 KB
#7502 CallElasticsearch net472 3.61μs 4.27ns 16ns 0.163 0 0 1.04 KB
#7502 CallElasticsearchAsync net6.0 1.9μs 2.51ns 9.38ns 0 0 0 1.01 KB
#7502 CallElasticsearchAsync netcoreapp3.1 2.4μs 2.87ns 11.1ns 0 0 0 1.08 KB
#7502 CallElasticsearchAsync net472 3.78μs 1.59ns 6.15ns 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.86μs 0.964ns 3.73ns 0 0 0 952 B
master ExecuteAsync netcoreapp3.1 2.21μs 4.07ns 14.7ns 0 0 0 952 B
master ExecuteAsync net472 2.52μs 1.05ns 4.05ns 0.139 0 0 915 B
#7502 ExecuteAsync net6.0 1.86μs 1.31ns 4.55ns 0 0 0 952 B
#7502 ExecuteAsync netcoreapp3.1 2.34μs 8.01ns 31ns 0 0 0 952 B
#7502 ExecuteAsync net472 2.41μs 0.802ns 3.1ns 0.144 0 0 915 B
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net6.0 6.94μs 3.4ns 12.7ns 0 0 0 2.36 KB
master SendAsync netcoreapp3.1 8.54μs 12.5ns 48.6ns 0 0 0 2.9 KB
master SendAsync net472 12.3μs 10.5ns 40.5ns 0.491 0 0 3.18 KB
#7502 SendAsync net6.0 6.57μs 9.5ns 36.8ns 0 0 0 2.36 KB
#7502 SendAsync netcoreapp3.1 8.4μs 25.2ns 97.7ns 0 0 0 2.9 KB
#7502 SendAsync net472 12.4μs 11.1ns 43.1ns 0.496 0 0 3.18 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7502

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 271.82 KB 274.67 KB 2.85 KB 1.05%

Fewer allocations 🎉 in #7502

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 44.14 KB 42.68 KB -1.46 KB -3.30%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net472 294.91 KB 283.46 KB -11.45 KB -3.88%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 273 KB 260.76 KB -12.24 KB -4.48%
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 53.9μs 705ns 7.01μs 0 0 0 43.78 KB
master StringConcatBenchmark netcoreapp3.1 58.1μs 843ns 8.22μs 0 0 0 44.14 KB
master StringConcatBenchmark net472 57.1μs 180ns 674ns 0 0 0 65.54 KB
master StringConcatAspectBenchmark net6.0 477μs 2.26μs 9.33μs 0 0 0 273 KB
master StringConcatAspectBenchmark netcoreapp3.1 450μs 6.19μs 61μs 0 0 0 271.82 KB
master StringConcatAspectBenchmark net472 403μs 1.74μs 6.26μs 0 0 0 294.91 KB
#7502 StringConcatBenchmark net6.0 54.5μs 664ns 6.64μs 0 0 0 43.98 KB
#7502 StringConcatBenchmark netcoreapp3.1 50.8μs 384ns 3.69μs 0 0 0 42.68 KB
#7502 StringConcatBenchmark net472 56.9μs 212ns 849ns 0 0 0 57.34 KB
#7502 StringConcatAspectBenchmark net6.0 472μs 2.38μs 10.4μs 0 0 0 260.76 KB
#7502 StringConcatAspectBenchmark netcoreapp3.1 502μs 1.47μs 5.29μs 0 0 0 274.67 KB
#7502 StringConcatAspectBenchmark net472 404μs 2.15μs 10.5μs 0 0 0 283.46 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.56μs 11.4ns 45.7ns 0 0 0 1.7 KB
master EnrichedLog netcoreapp3.1 3.53μs 5.19ns 20.1ns 0 0 0 1.7 KB
master EnrichedLog net472 3.89μs 3.63ns 14.1ns 0.252 0 0 1.64 KB
#7502 EnrichedLog net6.0 2.62μs 13.6ns 66.7ns 0 0 0 1.7 KB
#7502 EnrichedLog netcoreapp3.1 3.39μs 15.2ns 56.9ns 0 0 0 1.7 KB
#7502 EnrichedLog net472 3.87μs 2.79ns 10.8ns 0.252 0 0 1.64 KB
Benchmarks.Trace.Log4netBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 122μs 68.9ns 267ns 0 0 0 4.31 KB
master EnrichedLog netcoreapp3.1 126μs 170ns 638ns 0 0 0 4.31 KB
master EnrichedLog net472 166μs 113ns 438ns 0 0 0 4.51 KB
#7502 EnrichedLog net6.0 122μs 55.8ns 209ns 0 0 0 4.31 KB
#7502 EnrichedLog netcoreapp3.1 127μs 191ns 715ns 0 0 0 4.31 KB
#7502 EnrichedLog net472 169μs 21.9ns 84.8ns 0 0 0 4.52 KB
Benchmarks.Trace.NLogBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 5.02μs 7.79ns 29.1ns 0 0 0 2.26 KB
master EnrichedLog netcoreapp3.1 6.52μs 3.35ns 13ns 0 0 0 2.26 KB
master EnrichedLog net472 7.56μs 7.5ns 29.1ns 0.301 0 0 2.08 KB
#7502 EnrichedLog net6.0 5.02μs 3.24ns 12.6ns 0 0 0 2.26 KB
#7502 EnrichedLog netcoreapp3.1 6.6μs 13.3ns 51.4ns 0 0 0 2.26 KB
#7502 EnrichedLog net472 7.38μs 8.1ns 31.4ns 0.295 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.03μs 4.28ns 16.6ns 0 0 0 1.2 KB
master SendReceive netcoreapp3.1 2.6μs 12.1ns 47ns 0 0 0 1.2 KB
master SendReceive net472 3.26μs 2.69ns 10.1ns 0.179 0 0 1.2 KB
#7502 SendReceive net6.0 1.98μs 10.3ns 53.7ns 0 0 0 1.2 KB
#7502 SendReceive netcoreapp3.1 2.55μs 1.31ns 5.08ns 0 0 0 1.2 KB
#7502 SendReceive net472 3.17μs 3.28ns 12.3ns 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
master EnrichedLog net6.0 4.18μs 1.2ns 4.66ns 0 0 0 1.58 KB
master EnrichedLog netcoreapp3.1 5.54μs 8.86ns 34.3ns 0 0 0 1.63 KB
master EnrichedLog net472 6.59μs 6.66ns 25.8ns 0.294 0 0 2.03 KB
#7502 EnrichedLog net6.0 4.1μs 15.2ns 56.9ns 0 0 0 1.58 KB
#7502 EnrichedLog netcoreapp3.1 5.55μs 20.7ns 80.2ns 0 0 0 1.63 KB
#7502 EnrichedLog net472 6.5μs 9.45ns 36.6ns 0.29 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 744ns 0.314ns 1.22ns 0 0 0 576 B
master StartFinishSpan netcoreapp3.1 929ns 4.87ns 24.8ns 0 0 0 576 B
master StartFinishSpan net472 945ns 0.714ns 2.77ns 0.0896 0 0 578 B
master StartFinishScope net6.0 875ns 4.45ns 22.7ns 0 0 0 696 B
master StartFinishScope netcoreapp3.1 1.19μs 4.84ns 18.8ns 0 0 0 696 B
master StartFinishScope net472 1.08μs 0.831ns 3.11ns 0.102 0 0 658 B
#7502 StartFinishSpan net6.0 739ns 0.771ns 2.99ns 0 0 0 576 B
#7502 StartFinishSpan netcoreapp3.1 933ns 4.74ns 21.7ns 0 0 0 576 B
#7502 StartFinishSpan net472 906ns 1.4ns 5.43ns 0.0915 0 0 578 B
#7502 StartFinishScope net6.0 905ns 4.19ns 16.8ns 0 0 0 696 B
#7502 StartFinishScope netcoreapp3.1 1.1μs 5.65ns 25.3ns 0 0 0 696 B
#7502 StartFinishScope net472 1.07μs 0.273ns 1.02ns 0.102 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.06μs 0.439ns 1.7ns 0 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 1.39μs 6.86ns 30.7ns 0 0 0 696 B
master RunOnMethodBegin net472 1.41μs 2.25ns 8.71ns 0.0978 0 0 658 B
#7502 RunOnMethodBegin net6.0 1μs 1.69ns 6.53ns 0 0 0 696 B
#7502 RunOnMethodBegin netcoreapp3.1 1.36μs 4.66ns 16.2ns 0 0 0 696 B
#7502 RunOnMethodBegin net472 1.38μs 0.587ns 2.28ns 0.104 0 0 658 B

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

dd-trace-dotnet-ci-bot bot commented Sep 11, 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 (7502) - mean (72ms)  : 71, 73
     .   : milestone, 72,
    master - mean (72ms)  : 71, 73
     .   : milestone, 72,

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

    section CallTarget+Inlining+NGEN
    This PR (7502) - mean (1,034ms)  : 1015, 1053
     .   : milestone, 1034,
    master - mean (1,006ms)  : 977, 1035
     .   : milestone, 1006,

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

    section Baseline
    This PR (7502) - mean (105ms)  : 103, 107
     .   : milestone, 105,
    master - mean (106ms)  : 103, 108
     .   : milestone, 106,

    section CallTarget+Inlining+NGEN
    This PR (7502) - mean (725ms)  : 706, 745
     .   : milestone, 725,
    master - mean (704ms)  : 686, 722
     .   : milestone, 704,

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

    section Baseline
    This PR (7502) - mean (93ms)  : 92, 95
     .   : milestone, 93,
    master - mean (93ms)  : 91, 96
     .   : milestone, 93,

    section CallTarget+Inlining+NGEN
    This PR (7502) - mean (692ms)  : 669, 716
     .   : milestone, 692,
    master - mean (666ms)  : 648, 683
     .   : milestone, 666,

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

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

    section CallTarget+Inlining+NGEN
    This PR (7502) - mean (607ms)  : 593, 621
     .   : milestone, 607,
    master - mean (601ms)  : 591, 612
     .   : milestone, 601,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7502) - mean (194ms)  : 190, 197
     .   : milestone, 194,
    master - mean (194ms)  : 191, 198
     .   : milestone, 194,

    section Baseline
    This PR (7502) - mean (190ms)  : 186, 194
     .   : milestone, 190,
    master - mean (191ms)  : 188, 194
     .   : milestone, 191,

    section CallTarget+Inlining+NGEN
    This PR (7502) - mean (1,172ms)  : crit, 1152, 1191
     .   : crit, milestone, 1172,
    master - mean (1,105ms)  : 1069, 1141
     .   : milestone, 1105,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7502) - mean (274ms)  : 270, 279
     .   : milestone, 274,
    master - mean (274ms)  : 269, 278
     .   : milestone, 274,

    section Baseline
    This PR (7502) - mean (273ms)  : 267, 280
     .   : milestone, 273,
    master - mean (274ms)  : 267, 280
     .   : milestone, 274,

    section CallTarget+Inlining+NGEN
    This PR (7502) - mean (949ms)  : crit, 929, 969
     .   : crit, milestone, 949,
    master - mean (890ms)  : 864, 916
     .   : milestone, 890,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7502) - mean (266ms)  : 261, 271
     .   : milestone, 266,
    master - mean (266ms)  : 262, 271
     .   : milestone, 266,

    section Baseline
    This PR (7502) - mean (266ms)  : 260, 271
     .   : milestone, 266,
    master - mean (268ms)  : 261, 274
     .   : milestone, 268,

    section CallTarget+Inlining+NGEN
    This PR (7502) - mean (935ms)  : crit, 916, 955
     .   : crit, milestone, 935,
    master - mean (875ms)  : 834, 916
     .   : milestone, 875,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7502) - mean (265ms)  : 260, 270
     .   : milestone, 265,
    master - mean (267ms)  : 260, 273
     .   : milestone, 267,

    section Baseline
    This PR (7502) - mean (265ms)  : 259, 271
     .   : milestone, 265,
    master - mean (266ms)  : 258, 273
     .   : milestone, 266,

    section CallTarget+Inlining+NGEN
    This PR (7502) - mean (824ms)  : 809, 839
     .   : milestone, 824,
    master - mean (786ms)  : 764, 809
     .   : milestone, 786,

Loading

@ganeshnj ganeshnj force-pushed the ganeshnj/chore/te-config-logs branch from 99795b9 to 138075c Compare September 11, 2025 15:43

This comment has been minimized.

@ganeshnj ganeshnj force-pushed the ganeshnj/chore/te-config-logs branch from a7f4c64 to 041569d Compare September 18, 2025 11:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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.

1 participant