Skip to content

Fix support for async Oracle DB commands #7034

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 30, 2025
Merged

Conversation

bouwkast
Copy link
Collaborator

@bouwkast bouwkast commented May 29, 2025

Summary of changes

Re-add / fix support for async DB command instrumentations for later versions of Oracle.ManagedDataAccess and Oracle.ManagedDataAccess.Core.

Reason for change

async overrides of the base ADO.NET instrumentations were added to Oracle.ManagedDataAccess.Core / Oracle.ManagedDataAccess. But our Oracle instrumentations only had sync methods.

Implementation details

Went through and added the async instrumentations.

Test coverage

Ran latest NuGets locally and confirmed that when doing direct async command queries that no spans were generated, after making the change spans were generated once again.

In older versions the spans generated were actually from the base async DbCommand instrumentations.

Other details

@bouwkast bouwkast requested review from a team as code owners May 29, 2025 18:06
@bouwkast bouwkast changed the title Add support for async Oracle DB commands Fix support for async Oracle DB commands May 29, 2025
@lucaspimentel lucaspimentel added area:integrations type:enhancement Improvement to an existing feature labels May 29, 2025
@datadog-datadog-prod-us1
Copy link

datadog-datadog-prod-us1 bot commented May 29, 2025

Datadog Report

All test runs 6ad3b66 🔗

2 Total Test Services: 0 Failed, 2 Passed

Test Services
Service Name Failed Known Flaky New Flaky Passed Skipped Total Time Test Service View
dd-trace-dotnet 0 0 0 571564 4297 32h 4m 0.73s Link
exploration_tests 0 0 0 22085 3 2m 15.79s Link

@pr-commenter
Copy link

pr-commenter bot commented May 29, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #99 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.147
  • 1 benchmarks are slower, with geometric mean 1.205
  • 2 benchmarks have fewer allocations
  • 6 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 #99

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 6.18 KB 6.21 KB 31 B 0.50%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 10.6μs 56.8ns 321ns 0 0 0 5.55 KB
master StartStopWithChild netcoreapp3.1 13.8μs 68.8ns 316ns 0 0 0 5.75 KB
master StartStopWithChild net472 22.3μs 120ns 691ns 0.945 0.315 0 6.18 KB
#99 StartStopWithChild net6.0 10.6μs 59.4ns 385ns 0 0 0 5.55 KB
#99 StartStopWithChild netcoreapp3.1 13.7μs 45.2ns 175ns 0 0 0 5.75 KB
#99 StartStopWithChild net472 22.3μs 105ns 419ns 0.955 0.212 0 6.21 KB
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #99

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 3.33 KB 3.31 KB -23 B -0.69%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 929μs 62.3ns 241ns 0 0 0 2.71 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.02ms 63ns 218ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.25ms 271ns 1.05μs 0 0 0 3.33 KB
#99 WriteAndFlushEnrichedTraces net6.0 920μs 97.2ns 377ns 0 0 0 2.7 KB
#99 WriteAndFlushEnrichedTraces netcoreapp3.1 1.02ms 525ns 2.03μs 0 0 0 2.7 KB
#99 WriteAndFlushEnrichedTraces net472 1.23ms 251ns 905ns 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 144ns 539ns 0 0 0 197.06 KB
master AllCycleSimpleBody netcoreapp3.1 505μs 1.3μs 5.02μs 0 0 0 204.77 KB
master AllCycleSimpleBody net472 436μs 117ns 439ns 36.6 2.16 0 236.35 KB
master AllCycleMoreComplexBody net6.0 336μs 251ns 937ns 0 0 0 200.57 KB
master AllCycleMoreComplexBody netcoreapp3.1 490μs 199ns 769ns 0 0 0 208.18 KB
master AllCycleMoreComplexBody net472 445μs 102ns 396ns 36.6 2.16 0 239.87 KB
master ObjectExtractorSimpleBody net6.0 314ns 0.0893ns 0.322ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 405ns 2ns 7.98ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 303ns 0.0478ns 0.185ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.33μs 8.32ns 32.2ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.8μs 25.9ns 100ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.64μs 2.66ns 9.95ns 0.599 0 0 3.8 KB
#99 AllCycleSimpleBody net6.0 334μs 1.58μs 6.53μs 0 0 0 197.06 KB
#99 AllCycleSimpleBody netcoreapp3.1 490μs 1.79μs 6.71μs 0 0 0 204.77 KB
#99 AllCycleSimpleBody net472 440μs 114ns 394ns 36.6 2.16 0 236.35 KB
#99 AllCycleMoreComplexBody net6.0 336μs 1.51μs 5.86μs 0 0 0 200.56 KB
#99 AllCycleMoreComplexBody netcoreapp3.1 505μs 2.51μs 10.4μs 0 0 0 208.18 KB
#99 AllCycleMoreComplexBody net472 443μs 137ns 529ns 36.6 2.16 0 239.87 KB
#99 ObjectExtractorSimpleBody net6.0 306ns 1.71ns 10.9ns 0 0 0 280 B
#99 ObjectExtractorSimpleBody netcoreapp3.1 390ns 2.15ns 13.6ns 0 0 0 272 B
#99 ObjectExtractorSimpleBody net472 304ns 0.0475ns 0.184ns 0.0443 0 0 281 B
#99 ObjectExtractorMoreComplexBody net6.0 6.32μs 31.8ns 142ns 0 0 0 3.78 KB
#99 ObjectExtractorMoreComplexBody netcoreapp3.1 7.78μs 32.2ns 125ns 0 0 0 3.69 KB
#99 ObjectExtractorMoreComplexBody net472 6.67μs 1.63ns 6.31ns 0.6 0 0 3.8 KB
Benchmarks.Trace.Asm.AppSecEncoderBenchmark - Unknown 🤷 Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EncodeArgs net6.0 N/A N/A N/A NaN NaN NaN 0 b
master EncodeArgs netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
master EncodeArgs net472 N/A N/A N/A NaN NaN NaN 0 b
master EncodeLegacyArgs net6.0 N/A N/A N/A NaN NaN NaN 0 b
master EncodeLegacyArgs netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
master EncodeLegacyArgs net472 N/A N/A N/A NaN NaN NaN 0 b
#99 EncodeArgs net6.0 N/A N/A N/A NaN NaN NaN 0 b
#99 EncodeArgs netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#99 EncodeArgs net472 N/A N/A N/A NaN NaN NaN 0 b
#99 EncodeLegacyArgs net6.0 N/A N/A N/A NaN NaN NaN 0 b
#99 EncodeLegacyArgs netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#99 EncodeLegacyArgs net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.Asm.AppSecWafBenchmark - Unknown 🤷 Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 N/A N/A N/A NaN NaN NaN 0 b
master RunWafRealisticBenchmark netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
master RunWafRealisticBenchmark net472 N/A N/A N/A NaN NaN NaN 0 b
master RunWafRealisticBenchmarkWithAttack net6.0 N/A N/A N/A NaN NaN NaN 0 b
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
master RunWafRealisticBenchmarkWithAttack net472 N/A N/A N/A NaN NaN NaN 0 b
#99 RunWafRealisticBenchmark net6.0 N/A N/A N/A NaN NaN NaN 0 b
#99 RunWafRealisticBenchmark netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#99 RunWafRealisticBenchmark net472 N/A N/A N/A NaN NaN NaN 0 b
#99 RunWafRealisticBenchmarkWithAttack net6.0 N/A N/A N/A NaN NaN NaN 0 b
#99 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#99 RunWafRealisticBenchmarkWithAttack net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 61.4μs 36.1ns 130ns 0 0 0 14.53 KB
master SendRequest netcoreapp3.1 71.8μs 310ns 1.35μs 0 0 0 17.42 KB
master SendRequest net472 0.0196ns 0.00198ns 0.00768ns 0 0 0 0 b
#99 SendRequest net6.0 61μs 62.9ns 218ns 0 0 0 14.53 KB
#99 SendRequest netcoreapp3.1 72.5μs 368ns 1.65μs 0 0 0 17.42 KB
#99 SendRequest net472 0.00602ns 0.00239ns 0.00927ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Slower ⚠️ More allocations ⚠️

Slower ⚠️ in #99

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 1.205 917,725.67 1,105,400.83

More allocations ⚠️ in #99

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 41.69 KB 42.44 KB 754 B 1.81%
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 56.05 KB 56.46 KB 410 B 0.73%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 653μs 1.63μs 5.65μs 0 0 0 41.69 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 651μs 1.2μs 4.48μs 0 0 0 41.97 KB
master WriteAndFlushEnrichedTraces net472 920μs 2.72μs 10.2μs 4.46 0 0 56.05 KB
#99 WriteAndFlushEnrichedTraces net6.0 656μs 2.41μs 13.4μs 0 0 0 42.44 KB
#99 WriteAndFlushEnrichedTraces netcoreapp3.1 718μs 3.03μs 11.7μs 0 0 0 42.05 KB
#99 WriteAndFlushEnrichedTraces net472 1.09ms 6.32μs 53.6μs 8.33 0 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.95μs 6.38ns 24.7ns 0 0 0 1.03 KB
master ExecuteNonQuery netcoreapp3.1 2.54μs 8.94ns 33.4ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.71μs 2.75ns 10.7ns 0.147 0.0134 0 995 B
#99 ExecuteNonQuery net6.0 1.88μs 8.09ns 31.3ns 0 0 0 1.03 KB
#99 ExecuteNonQuery netcoreapp3.1 2.46μs 10.7ns 40.1ns 0 0 0 1.02 KB
#99 ExecuteNonQuery net472 2.77μs 5.25ns 20.3ns 0.151 0.0137 0 995 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.81μs 9.51ns 46.6ns 0 0 0 1.04 KB
master CallElasticsearch netcoreapp3.1 2.39μs 11.4ns 44.3ns 0 0 0 1.04 KB
master CallElasticsearch net472 3.5μs 1.07ns 4.14ns 0.158 0 0 1.05 KB
master CallElasticsearchAsync net6.0 1.9μs 2ns 7.49ns 0 0 0 1.02 KB
master CallElasticsearchAsync netcoreapp3.1 2.32μs 8.72ns 32.6ns 0 0 0 1.09 KB
master CallElasticsearchAsync net472 3.74μs 5.21ns 20.2ns 0.17 0 0 1.11 KB
#99 CallElasticsearch net6.0 1.73μs 8.91ns 43.6ns 0 0 0 1.04 KB
#99 CallElasticsearch netcoreapp3.1 2.24μs 11.1ns 45.9ns 0 0 0 1.04 KB
#99 CallElasticsearch net472 3.54μs 5.22ns 20.2ns 0.16 0 0 1.05 KB
#99 CallElasticsearchAsync net6.0 1.86μs 7.22ns 26ns 0 0 0 1.02 KB
#99 CallElasticsearchAsync netcoreapp3.1 2.45μs 10.5ns 40.6ns 0 0 0 1.09 KB
#99 CallElasticsearchAsync net472 3.92μs 4.54ns 17.6ns 0.176 0 0 1.11 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.73μs 8.16ns 33.6ns 0 0 0 960 B
master ExecuteAsync netcoreapp3.1 2.22μs 10.8ns 45.8ns 0 0 0 960 B
master ExecuteAsync net472 2.51μs 2.87ns 11.1ns 0.14 0 0 923 B
#99 ExecuteAsync net6.0 1.9μs 3.09ns 12ns 0 0 0 960 B
#99 ExecuteAsync netcoreapp3.1 2.37μs 9.16ns 35.5ns 0 0 0 960 B
#99 ExecuteAsync net472 2.56μs 1.49ns 5.38ns 0.141 0 0 923 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.06μs 4.8ns 16.6ns 0 0 0 2.37 KB
master SendAsync netcoreapp3.1 8.26μs 14.8ns 57.4ns 0 0 0 2.9 KB
master SendAsync net472 12.3μs 12.3ns 47.8ns 0.49 0 0 3.19 KB
#99 SendAsync net6.0 6.83μs 9.33ns 36.1ns 0 0 0 2.37 KB
#99 SendAsync netcoreapp3.1 8.49μs 13.7ns 51.4ns 0 0 0 2.9 KB
#99 SendAsync net472 11.9μs 12.5ns 48.4ns 0.475 0 0 3.19 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Faster 🎉 More allocations ⚠️

Faster 🎉 in #99

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 1.147 534,450.00 465,800.00

More allocations ⚠️ in #99

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 256.87 KB 261.73 KB 4.86 KB 1.89%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 42.64 KB 43.44 KB 800 B 1.88%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 43.53 KB 43.78 KB 248 B 0.57%

Fewer allocations 🎉 in #99

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 259.29 KB 257.2 KB -2.09 KB -0.81%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 44.5μs 239ns 1.51μs 0 0 0 43.53 KB
master StringConcatBenchmark netcoreapp3.1 46.5μs 236ns 1.29μs 0 0 0 42.64 KB
master StringConcatBenchmark net472 56.4μs 116ns 436ns 0 0 0 57.34 KB
master StringConcatAspectBenchmark net6.0 535μs 1.36μs 5.46μs 0 0 0 259.29 KB
master StringConcatAspectBenchmark netcoreapp3.1 519μs 2.32μs 8.69μs 0 0 0 256.87 KB
master StringConcatAspectBenchmark net472 403μs 2.32μs 17.8μs 0 0 0 278.53 KB
#99 StringConcatBenchmark net6.0 44.7μs 214ns 801ns 0 0 0 43.78 KB
#99 StringConcatBenchmark netcoreapp3.1 48.7μs 269ns 1.94μs 0 0 0 43.44 KB
#99 StringConcatBenchmark net472 57μs 86.5ns 312ns 0 0 0 57.34 KB
#99 StringConcatAspectBenchmark net6.0 468μs 2.18μs 8.15μs 0 0 0 257.2 KB
#99 StringConcatAspectBenchmark netcoreapp3.1 509μs 2.53μs 10.4μs 0 0 0 261.73 KB
#99 StringConcatAspectBenchmark net472 408μs 1.94μs 9.33μ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.62μs 4.87ns 18.2ns 0 0 0 1.76 KB
master EnrichedLog netcoreapp3.1 3.44μs 13.1ns 50.6ns 0 0 0 1.76 KB
master EnrichedLog net472 3.85μs 4.07ns 15.8ns 0.251 0 0 1.69 KB
#99 EnrichedLog net6.0 2.58μs 2.55ns 9.88ns 0 0 0 1.76 KB
#99 EnrichedLog netcoreapp3.1 3.47μs 15.2ns 58.9ns 0 0 0 1.76 KB
#99 EnrichedLog net472 3.94μs 4.44ns 16.6ns 0.255 0 0 1.69 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 124μs 51.3ns 199ns 0 0 0 4.37 KB
master EnrichedLog netcoreapp3.1 127μs 29.8ns 108ns 0 0 0 4.37 KB
master EnrichedLog net472 167μs 337ns 1.31μs 0 0 0 4.57 KB
#99 EnrichedLog net6.0 124μs 68.6ns 266ns 0 0 0 4.37 KB
#99 EnrichedLog netcoreapp3.1 128μs 80.5ns 290ns 0 0 0 4.37 KB
#99 EnrichedLog net472 168μs 61.9ns 240ns 0 0 0 4.57 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 4.93μs 3.19ns 12.4ns 0 0 0 2.32 KB
master EnrichedLog netcoreapp3.1 6.58μs 19.8ns 76.7ns 0 0 0 2.32 KB
master EnrichedLog net472 7.43μs 5.56ns 21.5ns 0.335 0 0 2.14 KB
#99 EnrichedLog net6.0 4.94μs 22.8ns 91ns 0 0 0 2.32 KB
#99 EnrichedLog netcoreapp3.1 6.72μs 27.1ns 105ns 0 0 0 2.32 KB
#99 EnrichedLog net472 7.34μs 7.64ns 29.6ns 0.33 0 0 2.14 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.98μs 5.37ns 20.8ns 0 0 0 1.21 KB
master SendReceive netcoreapp3.1 2.58μs 11.5ns 44.5ns 0 0 0 1.21 KB
master SendReceive net472 3.25μs 2.63ns 10.2ns 0.178 0 0 1.21 KB
#99 SendReceive net6.0 2.01μs 10.5ns 49.3ns 0 0 0 1.21 KB
#99 SendReceive netcoreapp3.1 2.65μs 13.5ns 58.9ns 0 0 0 1.21 KB
#99 SendReceive net472 3.08μs 4.38ns 16.9ns 0.183 0 0 1.21 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.04μs 15.7ns 60.9ns 0 0 0 1.64 KB
master EnrichedLog netcoreapp3.1 5.54μs 5.65ns 21.9ns 0 0 0 1.69 KB
master EnrichedLog net472 6.73μs 4.28ns 16.6ns 0.305 0 0 2.08 KB
#99 EnrichedLog net6.0 4.42μs 7.48ns 28ns 0 0 0 1.64 KB
#99 EnrichedLog netcoreapp3.1 5.54μs 13.8ns 53.4ns 0 0 0 1.69 KB
#99 EnrichedLog net472 6.53μs 10.8ns 41.7ns 0.329 0 0 2.08 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 754ns 3.74ns 16.3ns 0 0 0 584 B
master StartFinishSpan netcoreapp3.1 938ns 2.42ns 9.38ns 0 0 0 584 B
master StartFinishSpan net472 927ns 0.298ns 1.07ns 0.0931 0 0 586 B
master StartFinishScope net6.0 895ns 4.45ns 19.4ns 0 0 0 704 B
master StartFinishScope netcoreapp3.1 1.11μs 6.13ns 35.7ns 0 0 0 704 B
master StartFinishScope net472 1.11μs 3.23ns 12.5ns 0.101 0 0 666 B
#99 StartFinishSpan net6.0 761ns 0.213ns 0.825ns 0 0 0 584 B
#99 StartFinishSpan netcoreapp3.1 943ns 4.8ns 23ns 0 0 0 584 B
#99 StartFinishSpan net472 900ns 0.193ns 0.722ns 0.0905 0 0 586 B
#99 StartFinishScope net6.0 912ns 0.225ns 0.84ns 0 0 0 704 B
#99 StartFinishScope netcoreapp3.1 1.12μs 5.32ns 21.3ns 0 0 0 704 B
#99 StartFinishScope net472 1.12μs 0.322ns 1.25ns 0.101 0 0 666 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.02μs 4.88ns 20.7ns 0 0 0 704 B
master RunOnMethodBegin netcoreapp3.1 1.41μs 7.27ns 33.3ns 0 0 0 704 B
master RunOnMethodBegin net472 1.39μs 1.35ns 5.07ns 0.104 0 0 666 B
#99 RunOnMethodBegin net6.0 1.05μs 0.466ns 1.8ns 0 0 0 704 B
#99 RunOnMethodBegin netcoreapp3.1 1.45μs 4.02ns 15.6ns 0 0 0 704 B
#99 RunOnMethodBegin net472 1.34μs 0.703ns 2.53ns 0.1 0 0 666 B

@andrewlock
Copy link
Member

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 Baseline
    This PR (7034) - mean (72ms)  : 68, 76
     .   : milestone, 72,
    master - mean (75ms)  : 69, 82
     .   : milestone, 75,

    section CallTarget+Inlining+NGEN
    This PR (7034) - mean (1,042ms)  : 1002, 1083
     .   : milestone, 1042,
    master - mean (1,058ms)  : 1016, 1100
     .   : milestone, 1058,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (7034) - mean (109ms)  : 106, 112
     .   : milestone, 109,
    master - mean (110ms)  : 105, 114
     .   : milestone, 110,

    section CallTarget+Inlining+NGEN
    This PR (7034) - mean (723ms)  : 700, 746
     .   : milestone, 723,
    master - mean (728ms)  : 704, 752
     .   : milestone, 728,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (7034) - mean (95ms)  : 92, 98
     .   : milestone, 95,
    master - mean (97ms)  : 93, 100
     .   : milestone, 97,

    section CallTarget+Inlining+NGEN
    This PR (7034) - mean (680ms)  : 645, 714
     .   : milestone, 680,
    master - mean (686ms)  : 663, 709
     .   : milestone, 686,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (7034) - mean (190ms)  : 186, 193
     .   : milestone, 190,
    master - mean (189ms)  : 186, 193
     .   : milestone, 189,

    section CallTarget+Inlining+NGEN
    This PR (7034) - mean (1,110ms)  : 1082, 1137
     .   : milestone, 1110,
    master - mean (1,112ms)  : 1085, 1139
     .   : milestone, 1112,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (7034) - mean (269ms)  : 265, 274
     .   : milestone, 269,
    master - mean (269ms)  : 264, 273
     .   : milestone, 269,

    section CallTarget+Inlining+NGEN
    This PR (7034) - mean (881ms)  : 843, 918
     .   : milestone, 881,
    master - mean (882ms)  : 849, 915
     .   : milestone, 882,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (7034) - mean (262ms)  : 259, 266
     .   : milestone, 262,
    master - mean (261ms)  : 258, 264
     .   : milestone, 261,

    section CallTarget+Inlining+NGEN
    This PR (7034) - mean (868ms)  : 830, 906
     .   : milestone, 868,
    master - mean (869ms)  : 839, 900
     .   : milestone, 869,

Loading

@bouwkast bouwkast merged commit 5c8d02b into master May 30, 2025
76 of 79 checks passed
@bouwkast bouwkast deleted the steven/oracle-async-fix branch May 30, 2025 14:00
@github-actions github-actions bot added this to the vNext-v3 milestone May 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:integrations type:enhancement Improvement to an existing feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants