Skip to content

Conversation

andrewlock
Copy link
Member

@andrewlock andrewlock commented Aug 11, 2025

Summary of changes

Adds a "final" job at the end of ultimate-pipeline that can be used to block merges

Reason for change

We have had various cases where the PR had failed, but we merged anyway, and that broke master. A big reason for that was flakiness, but as we continue to work on that, we want to make it easy to require a full green pipeline before merges. Unfortunately, that's a PITA with Azure DevOps 😅

Implementation details

  • Add two new stages which depend on every other stage, but have conditions such that they run even if previous stages didn't run
  • When those stages run, post the results to GitHub
  • Create a job to auto-generate those files (because they're super-verbose)

Test coverage

Ran this a few times. Confirmed that if anything fails, this job fails. If everything passes (or didn't run), this job passes.

Other details

We can later decide when we want to require this job. Note that we should also still require some jobs that we expect to always run, to make sure that things have run that we expect to

@andrewlock andrewlock added the area:builds project files, build scripts, pipelines, versioning, releases, packages label Aug 11, 2025
@pr-commenter
Copy link

pr-commenter bot commented Aug 11, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #7376 compared to master:

  • 2 benchmarks are faster, with geometric mean 2.229
  • 2 benchmarks are slower, with geometric mean 1.275
  • 4 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 ✔️ More allocations ⚠️

More allocations ⚠️ in #7376

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑netcoreapp3.1 5.69 KB 5.72 KB 35 B 0.62%

Fewer allocations 🎉 in #7376

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 6.09 KB 6.05 KB -34 B -0.56%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 10.5μs 57.6ns 331ns 0 0 0 5.49 KB
master StartStopWithChild netcoreapp3.1 13.1μs 66.6ns 313ns 0 0 0 5.69 KB
master StartStopWithChild net472 21.9μs 118ns 678ns 0.96 0.213 0 6.09 KB
#7376 StartStopWithChild net6.0 10.6μs 55.9ns 354ns 0 0 0 5.49 KB
#7376 StartStopWithChild netcoreapp3.1 14.5μs 69ns 276ns 0 0 0 5.72 KB
#7376 StartStopWithChild net472 21.6μs 119ns 821ns 0.987 0.329 0.11 6.05 KB
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 932μs 55.4ns 215ns 0 0 0 2.71 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.01ms 351ns 1.36μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.2ms 360ns 1.4μs 0 0 0 3.31 KB
#7376 WriteAndFlushEnrichedTraces net6.0 941μs 47.9ns 179ns 0 0 0 2.71 KB
#7376 WriteAndFlushEnrichedTraces netcoreapp3.1 1.02ms 80.6ns 291ns 0 0 0 2.7 KB
#7376 WriteAndFlushEnrichedTraces net472 1.2ms 46.9ns 169ns 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 327μs 369ns 1.43μs 0 0 0 173.45 KB
master AllCycleSimpleBody netcoreapp3.1 469μs 2.07μs 8.02μs 0 0 0 175.64 KB
master AllCycleSimpleBody net472 428μs 81.2ns 314ns 29.2 0 0 195.79 KB
master AllCycleMoreComplexBody net6.0 331μs 1.27μs 4.93μs 0 0 0 176.96 KB
master AllCycleMoreComplexBody netcoreapp3.1 489μs 1.92μs 7.43μs 0 0 0 179.06 KB
master AllCycleMoreComplexBody net472 438μs 120ns 463ns 30.2 0 0 199.31 KB
master ObjectExtractorSimpleBody net6.0 326ns 0.21ns 0.786ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 397ns 2.16ns 12.6ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 302ns 0.0345ns 0.134ns 0.0441 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.31μs 7.49ns 29ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.87μs 11.9ns 46ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.68μs 4.08ns 15.8ns 0.601 0 0 3.8 KB
#7376 AllCycleSimpleBody net6.0 330μs 1.56μs 5.84μs 0 0 0 173.45 KB
#7376 AllCycleSimpleBody netcoreapp3.1 462μs 1.24μs 4.29μs 0 0 0 175.64 KB
#7376 AllCycleSimpleBody net472 426μs 93.3ns 349ns 29.2 0 0 195.79 KB
#7376 AllCycleMoreComplexBody net6.0 330μs 984ns 3.81μs 0 0 0 176.95 KB
#7376 AllCycleMoreComplexBody netcoreapp3.1 483μs 1.38μs 5.34μs 0 0 0 179.06 KB
#7376 AllCycleMoreComplexBody net472 438μs 179ns 692ns 30.2 0 0 199.31 KB
#7376 ObjectExtractorSimpleBody net6.0 323ns 1.77ns 10.6ns 0 0 0 280 B
#7376 ObjectExtractorSimpleBody netcoreapp3.1 399ns 2.23ns 13.4ns 0 0 0 272 B
#7376 ObjectExtractorSimpleBody net472 303ns 0.0588ns 0.228ns 0.0441 0 0 281 B
#7376 ObjectExtractorMoreComplexBody net6.0 6.39μs 3.49ns 13.5ns 0 0 0 3.78 KB
#7376 ObjectExtractorMoreComplexBody netcoreapp3.1 7.77μs 20.3ns 78.6ns 0 0 0 3.69 KB
#7376 ObjectExtractorMoreComplexBody net472 6.76μs 13.7ns 53ns 0.578 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μs 304ns 1.18μs 0 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 96.3μs 343ns 1.28μs 0 0 0 32.4 KB
master EncodeArgs net472 109μs 19ns 73.7ns 4.93 0 0 32.5 KB
master EncodeLegacyArgs net6.0 144μs 20.7ns 77.4ns 0 0 0 2.15 KB
master EncodeLegacyArgs netcoreapp3.1 195μs 124ns 482ns 0 0 0 2.14 KB
master EncodeLegacyArgs net472 262μs 96.3ns 373ns 0 0 0 2.16 KB
#7376 EncodeArgs net6.0 76.7μs 45.6ns 171ns 0 0 0 32.4 KB
#7376 EncodeArgs netcoreapp3.1 96.2μs 315ns 1.22μs 0 0 0 32.4 KB
#7376 EncodeArgs net472 110μs 19.5ns 75.7ns 4.94 0 0 32.51 KB
#7376 EncodeLegacyArgs net6.0 144μs 58.9ns 228ns 0 0 0 2.15 KB
#7376 EncodeLegacyArgs netcoreapp3.1 199μs 194ns 753ns 0 0 0 2.14 KB
#7376 EncodeLegacyArgs net472 262μs 51.4ns 199ns 0 0 0 2.16 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Faster 🎉 Same allocations ✔️

Faster 🎉 in #7376

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmarkWithAttack‑netcoreapp3.1 2.390 725,004.65 303,355.79
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmark‑netcoreapp3.1 2.080 858,706.47 412,916.25

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 395μs 163ns 588ns 0 0 0 4.56 KB
master RunWafRealisticBenchmark netcoreapp3.1 804μs 15.1μs 144μs 0 0 0 4.48 KB
master RunWafRealisticBenchmark net472 432μs 152ns 588ns 0 0 0 4.66 KB
master RunWafRealisticBenchmarkWithAttack net6.0 290μs 96.9ns 375ns 0 0 0 2.24 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 719μs 2.95μs 11.4μs 0 0 0 2.22 KB
master RunWafRealisticBenchmarkWithAttack net472 312μs 156ns 604ns 0 0 0 2.29 KB
#7376 RunWafRealisticBenchmark net6.0 396μs 335ns 1.25μs 0 0 0 4.55 KB
#7376 RunWafRealisticBenchmark netcoreapp3.1 413μs 252ns 975ns 0 0 0 4.48 KB
#7376 RunWafRealisticBenchmark net472 436μs 69.6ns 270ns 0 0 0 4.66 KB
#7376 RunWafRealisticBenchmarkWithAttack net6.0 290μs 32.1ns 120ns 0 0 0 2.24 KB
#7376 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 303μs 273ns 984ns 0 0 0 2.22 KB
#7376 RunWafRealisticBenchmarkWithAttack net472 315μs 142ns 549ns 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.6μs 62.7ns 226ns 0 0 0 14.52 KB
master SendRequest netcoreapp3.1 71.5μs 106ns 396ns 0 0 0 17.42 KB
master SendRequest net472 0.0137ns 0.00206ns 0.0077ns 0 0 0 0 b
#7376 SendRequest net6.0 61.4μs 53.9ns 209ns 0 0 0 14.52 KB
#7376 SendRequest netcoreapp3.1 72.6μs 173ns 649ns 0 0 0 17.42 KB
#7376 SendRequest net472 0.00123ns 0.000641ns 0.00248ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7376

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑netcoreapp3.1 0 b 1 B 1 B
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0 1 B 4 B 3 B 300.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master OriginalCharSlice net6.0 1.93ms 309ns 1.2μs 0 0 0 640.01 KB
master OriginalCharSlice netcoreapp3.1 2.11ms 5.68μs 20.5μs 0 0 0 640 KB
master OriginalCharSlice net472 2.63ms 1.52μs 5.88μs 100 0 0 641.95 KB
master OptimizedCharSlice net6.0 1.44ms 555ns 2.15μs 0 0 0 7 B
master OptimizedCharSlice netcoreapp3.1 1.76ms 509ns 1.97μs 0 0 0 1 B
master OptimizedCharSlice net472 1.93ms 822ns 3.18μs 0 0 0 0 b
master OptimizedCharSliceWithPool net6.0 831μs 64.3ns 249ns 0 0 0 1 B
master OptimizedCharSliceWithPool netcoreapp3.1 801μs 67.1ns 251ns 0 0 0 0 b
master OptimizedCharSliceWithPool net472 1.19ms 106ns 412ns 0 0 0 0 b
#7376 OriginalCharSlice net6.0 1.91ms 332ns 1.29μs 0 0 0 640.01 KB
#7376 OriginalCharSlice netcoreapp3.1 2.08ms 4.47μs 16.7μs 0 0 0 640 KB
#7376 OriginalCharSlice net472 2.69ms 98.6ns 382ns 100 0 0 641.95 KB
#7376 OptimizedCharSlice net6.0 1.42ms 317ns 1.14μs 0 0 0 7 B
#7376 OptimizedCharSlice netcoreapp3.1 1.67ms 238ns 889ns 0 0 0 1 B
#7376 OptimizedCharSlice net472 1.92ms 1.44μs 5.58μs 0 0 0 0 b
#7376 OptimizedCharSliceWithPool net6.0 870μs 64.5ns 241ns 0 0 0 4 B
#7376 OptimizedCharSliceWithPool netcoreapp3.1 808μs 71.4ns 277ns 0 0 0 1 B
#7376 OptimizedCharSliceWithPool net472 1.13ms 76.5ns 296ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Slower ⚠️ More allocations ⚠️

Slower ⚠️ in #7376

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 1.199 638,939.06 765,851.76 bimodal

More allocations ⚠️ in #7376

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 41.86 KB 42.1 KB 241 B 0.58%
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 56.1 KB 56.39 KB 296 B 0.53%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 657μs 3.69μs 25.3μs 0 0 0 41.64 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 760μs 2.59μs 10μs 0 0 0 41.86 KB
master WriteAndFlushEnrichedTraces net472 940μs 3.44μs 13.3μs 4.46 0 0 56.1 KB
#7376 WriteAndFlushEnrichedTraces net6.0 759μs 3.97μs 19.5μs 0 0 0 41.62 KB
#7376 WriteAndFlushEnrichedTraces netcoreapp3.1 689μs 3.91μs 29.8μs 0 0 0 42.1 KB
#7376 WriteAndFlushEnrichedTraces net472 1.01ms 5.28μs 27.4μs 8.93 0 0 56.39 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.81μs 8.85ns 37.5ns 0 0 0 1.02 KB
master ExecuteNonQuery netcoreapp3.1 2.55μs 9.95ns 38.5ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.95μs 15.2ns 71.1ns 0.143 0.0143 0 987 B
#7376 ExecuteNonQuery net6.0 1.9μs 8.89ns 34.4ns 0 0 0 1.02 KB
#7376 ExecuteNonQuery netcoreapp3.1 2.4μs 7.51ns 29.1ns 0 0 0 1.02 KB
#7376 ExecuteNonQuery net472 2.67μs 5.83ns 22.6ns 0.147 0.0134 0 987 B
Benchmarks.Trace.ElasticsearchBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #7376

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑net472 1.356 3,942.99 5,347.60

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master CallElasticsearch net6.0 1.74μs 7.66ns 28.7ns 0 0 0 1.03 KB
master CallElasticsearch netcoreapp3.1 2.31μs 10.8ns 41.7ns 0 0 0 1.03 KB
master CallElasticsearch net472 3.68μs 2.78ns 10.8ns 0.166 0 0 1.04 KB
master CallElasticsearchAsync net6.0 1.75μs 5.34ns 20.7ns 0 0 0 1.01 KB
master CallElasticsearchAsync netcoreapp3.1 2.43μs 12.3ns 53.8ns 0 0 0 1.08 KB
master CallElasticsearchAsync net472 3.94μs 2.23ns 8.63ns 0.159 0 0 1.1 KB
#7376 CallElasticsearch net6.0 1.74μs 1.3ns 4.87ns 0 0 0 1.03 KB
#7376 CallElasticsearch netcoreapp3.1 2.26μs 11.5ns 51.4ns 0 0 0 1.03 KB
#7376 CallElasticsearch net472 3.6μs 8.08ns 31.3ns 0.162 0 0 1.04 KB
#7376 CallElasticsearchAsync net6.0 1.89μs 5.2ns 20.1ns 0 0 0 1.01 KB
#7376 CallElasticsearchAsync netcoreapp3.1 2.51μs 3.4ns 12.7ns 0 0 0 1.08 KB
#7376 CallElasticsearchAsync net472 5.35μs 5.07ns 19.6ns 0.16 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 8.94ns 37.9ns 0 0 0 952 B
master ExecuteAsync netcoreapp3.1 2.32μs 9.38ns 36.3ns 0 0 0 952 B
master ExecuteAsync net472 2.54μs 0.898ns 3.48ns 0.139 0 0 915 B
#7376 ExecuteAsync net6.0 1.73μs 8.08ns 31.3ns 0 0 0 952 B
#7376 ExecuteAsync netcoreapp3.1 2.32μs 8.6ns 33.3ns 0 0 0 952 B
#7376 ExecuteAsync net472 2.64μs 2.07ns 8ns 0.133 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.82μs 16.4ns 63.5ns 0 0 0 2.36 KB
master SendAsync netcoreapp3.1 8.62μs 5ns 19.4ns 0 0 0 2.9 KB
master SendAsync net472 12.7μs 12.8ns 49.5ns 0.442 0 0 3.18 KB
#7376 SendAsync net6.0 7μs 9.02ns 34.9ns 0 0 0 2.36 KB
#7376 SendAsync netcoreapp3.1 8.41μs 28ns 108ns 0 0 0 2.9 KB
#7376 SendAsync net472 12.3μs 13ns 50.2ns 0.489 0 0 3.18 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7376

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472 57.34 KB 65.54 KB 8.19 KB 14.29%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net472 274.47 KB 278.53 KB 4.06 KB 1.48%

Fewer allocations 🎉 in #7376

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 43.48 KB 43.16 KB -320 B -0.74%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 44.19 KB 42.93 KB -1.26 KB -2.86%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 277.04 KB 255.21 KB -21.83 KB -7.88%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 48.5μs 280ns 2.11μs 0 0 0 43.48 KB
master StringConcatBenchmark netcoreapp3.1 50.7μs 295ns 2.2μs 0 0 0 44.19 KB
master StringConcatBenchmark net472 57μs 276ns 1.07μs 0 0 0 57.34 KB
master StringConcatAspectBenchmark net6.0 453μs 1.58μs 7.04μs 0 0 0 260.46 KB
master StringConcatAspectBenchmark netcoreapp3.1 537μs 2.17μs 8.11μs 0 0 0 277.04 KB
master StringConcatAspectBenchmark net472 406μs 2.2μs 12.7μs 0 0 0 274.47 KB
#7376 StringConcatBenchmark net6.0 44.1μs 227ns 1.11μs 0 0 0 43.16 KB
#7376 StringConcatBenchmark netcoreapp3.1 51.2μs 596ns 5.69μs 0 0 0 42.93 KB
#7376 StringConcatBenchmark net472 57.2μs 168ns 582ns 0 0 0 65.54 KB
#7376 StringConcatAspectBenchmark net6.0 494μs 2.64μs 14μs 0 0 0 260.3 KB
#7376 StringConcatAspectBenchmark netcoreapp3.1 492μs 1.92μs 6.93μs 0 0 0 255.21 KB
#7376 StringConcatAspectBenchmark net472 404μs 2.3μs 16.9μ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.55μs 12.8ns 54.2ns 0 0 0 1.7 KB
master EnrichedLog netcoreapp3.1 3.37μs 15.6ns 62.5ns 0 0 0 1.7 KB
master EnrichedLog net472 3.88μs 3.22ns 12.5ns 0.25 0 0 1.64 KB
#7376 EnrichedLog net6.0 2.6μs 2ns 7.21ns 0 0 0 1.7 KB
#7376 EnrichedLog netcoreapp3.1 3.36μs 4.26ns 15.9ns 0 0 0 1.7 KB
#7376 EnrichedLog net472 3.96μs 3.06ns 11.4ns 0.256 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 123μs 82.4ns 319ns 0 0 0 4.31 KB
master EnrichedLog netcoreapp3.1 128μs 105ns 380ns 0 0 0 4.31 KB
master EnrichedLog net472 167μs 114ns 443ns 0 0 0 4.52 KB
#7376 EnrichedLog net6.0 123μs 44.8ns 162ns 0 0 0 4.31 KB
#7376 EnrichedLog netcoreapp3.1 126μs 37.2ns 134ns 0 0 0 4.31 KB
#7376 EnrichedLog net472 167μs 64.8ns 233ns 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.03μs 21.7ns 81.1ns 0 0 0 2.26 KB
master EnrichedLog netcoreapp3.1 6.72μs 9.19ns 35.6ns 0 0 0 2.26 KB
master EnrichedLog net472 7.6μs 7.95ns 30.8ns 0.304 0 0 2.08 KB
#7376 EnrichedLog net6.0 5.05μs 4.96ns 19.2ns 0 0 0 2.26 KB
#7376 EnrichedLog netcoreapp3.1 6.79μs 20.7ns 80.2ns 0 0 0 2.26 KB
#7376 EnrichedLog net472 7.44μs 6.86ns 26.6ns 0.298 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 1.96μs 1.57ns 6.08ns 0 0 0 1.2 KB
master SendReceive netcoreapp3.1 2.63μs 7.94ns 30.8ns 0 0 0 1.2 KB
master SendReceive net472 3.16μs 2.7ns 10.5ns 0.19 0 0 1.2 KB
#7376 SendReceive net6.0 1.91μs 8.82ns 35.3ns 0 0 0 1.2 KB
#7376 SendReceive netcoreapp3.1 2.58μs 12.1ns 48.6ns 0 0 0 1.2 KB
#7376 SendReceive net472 3.32μs 4.45ns 17.2ns 0.181 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.08μs 3.45ns 12.9ns 0 0 0 1.58 KB
master EnrichedLog netcoreapp3.1 5.52μs 8.29ns 32.1ns 0 0 0 1.63 KB
master EnrichedLog net472 6.7μs 4.77ns 17.9ns 0.3 0 0 2.03 KB
#7376 EnrichedLog net6.0 4.22μs 5.74ns 22.2ns 0 0 0 1.58 KB
#7376 EnrichedLog netcoreapp3.1 5.65μs 19.3ns 74.9ns 0 0 0 1.63 KB
#7376 EnrichedLog net472 6.51μs 6.75ns 26.1ns 0.295 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 761ns 0.24ns 0.93ns 0 0 0 576 B
master StartFinishSpan netcoreapp3.1 939ns 4.34ns 17.4ns 0 0 0 576 B
master StartFinishSpan net472 931ns 0.841ns 3.26ns 0.0888 0 0 578 B
master StartFinishScope net6.0 891ns 4.5ns 19.6ns 0 0 0 696 B
master StartFinishScope netcoreapp3.1 1.12μs 5.77ns 28.9ns 0 0 0 696 B
master StartFinishScope net472 1.09μs 0.123ns 0.462ns 0.103 0 0 658 B
#7376 StartFinishSpan net6.0 753ns 3.65ns 14.1ns 0 0 0 576 B
#7376 StartFinishSpan netcoreapp3.1 926ns 4.8ns 24.5ns 0 0 0 576 B
#7376 StartFinishSpan net472 902ns 0.321ns 1.24ns 0.0909 0 0 578 B
#7376 StartFinishScope net6.0 918ns 1.1ns 4.26ns 0 0 0 696 B
#7376 StartFinishScope netcoreapp3.1 1.11μs 0.337ns 1.26ns 0 0 0 696 B
#7376 StartFinishScope net472 1.08μs 0.216ns 0.836ns 0.104 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 5.49ns 25.2ns 0 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 1.32μs 4.63ns 17.9ns 0 0 0 696 B
master RunOnMethodBegin net472 1.37μs 0.213ns 0.825ns 0.103 0 0 658 B
#7376 RunOnMethodBegin net6.0 1.01μs 4.7ns 18.2ns 0 0 0 696 B
#7376 RunOnMethodBegin netcoreapp3.1 1.38μs 4.55ns 17.6ns 0 0 0 696 B
#7376 RunOnMethodBegin net472 1.37μs 1.14ns 4.41ns 0.103 0 0 658 B

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

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

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

    section CallTarget+Inlining+NGEN
    This PR (7376) - mean (999ms)  : 972, 1025
     .   : milestone, 999,
    master - mean (994ms)  : 976, 1012
     .   : milestone, 994,

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

    section Baseline
    This PR (7376) - mean (106ms)  : 105, 108
     .   : milestone, 106,
    master - mean (107ms)  : 104, 109
     .   : milestone, 107,

    section CallTarget+Inlining+NGEN
    This PR (7376) - mean (712ms)  : 702, 721
     .   : milestone, 712,
    master - mean (714ms)  : 705, 724
     .   : milestone, 714,

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

    section Baseline
    This PR (7376) - mean (94ms)  : 92, 95
     .   : milestone, 94,
    master - mean (93ms)  : 92, 95
     .   : milestone, 93,

    section CallTarget+Inlining+NGEN
    This PR (7376) - mean (665ms)  : 654, 676
     .   : milestone, 665,
    master - mean (670ms)  : 660, 680
     .   : milestone, 670,

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

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

    section CallTarget+Inlining+NGEN
    This PR (7376) - mean (599ms)  : 588, 609
     .   : milestone, 599,
    master - mean (606ms)  : 593, 618
     .   : milestone, 606,

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

    section Baseline
    This PR (7376) - mean (195ms)  : 190, 200
     .   : milestone, 195,
    master - mean (195ms)  : 190, 200
     .   : milestone, 195,

    section CallTarget+Inlining+NGEN
    This PR (7376) - mean (1,123ms)  : 1084, 1161
     .   : milestone, 1123,
    master - mean (1,121ms)  : 1090, 1151
     .   : milestone, 1121,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7376) - mean (279ms)  : 275, 283
     .   : milestone, 279,
    master - mean (279ms)  : 275, 282
     .   : milestone, 279,

    section Baseline
    This PR (7376) - mean (279ms)  : 272, 285
     .   : milestone, 279,
    master - mean (279ms)  : 273, 285
     .   : milestone, 279,

    section CallTarget+Inlining+NGEN
    This PR (7376) - mean (907ms)  : 885, 928
     .   : milestone, 907,
    master - mean (911ms)  : 890, 933
     .   : milestone, 911,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7376) - mean (272ms)  : 266, 279
     .   : milestone, 272,
    master - mean (272ms)  : 268, 276
     .   : milestone, 272,

    section Baseline
    This PR (7376) - mean (271ms)  : 265, 278
     .   : milestone, 271,
    master - mean (273ms)  : 266, 279
     .   : milestone, 273,

    section CallTarget+Inlining+NGEN
    This PR (7376) - mean (895ms)  : 862, 928
     .   : milestone, 895,
    master - mean (893ms)  : 875, 912
     .   : milestone, 893,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7376) - mean (272ms)  : 265, 279
     .   : milestone, 272,
    master - mean (270ms)  : 265, 275
     .   : milestone, 270,

    section Baseline
    This PR (7376) - mean (271ms)  : 266, 276
     .   : milestone, 271,
    master - mean (271ms)  : 266, 277
     .   : milestone, 271,

    section CallTarget+Inlining+NGEN
    This PR (7376) - mean (809ms)  : 792, 826
     .   : milestone, 809,
    master - mean (815ms)  : 784, 845
     .   : milestone, 815,

Loading

@andrewlock andrewlock force-pushed the andrew/ci/final-job branch 3 times, most recently from 2ef650c to 5027140 Compare August 15, 2025 15:34
@andrewlock andrewlock force-pushed the andrew/ci/final-job branch from 5027140 to 082daee Compare August 18, 2025 10:56
@andrewlock andrewlock marked this pull request as ready for review August 18, 2025 13:41
@andrewlock andrewlock requested a review from a team as a code owner August 18, 2025 13:41
Copy link
Contributor

@link04 link04 left a comment

Choose a reason for hiding this comment

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

🟢

Copy link
Contributor

@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.

Cool! Thanks!

@andrewlock andrewlock merged commit fca4585 into master Aug 19, 2025
151 checks passed
@andrewlock andrewlock deleted the andrew/ci/final-job branch August 19, 2025 17:25
@github-actions github-actions bot added this to the vNext-v3 milestone Aug 19, 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