Skip to content

[Profiler] Provide exact minor.build version information for .NET Framework applications #6974

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 7 commits into from
May 20, 2025

Conversation

chrisnas
Copy link
Contributor

Summary of changes

Compute the minor and build parts of the .NET Framework version instead of always returning 4.0

Reason for change

It is important to make the difference between minor.build versions for Call To Action part of the UI when a recommendation is needed for a specific profile type

Implementation details

Look at mscorlib.dll file version information and infer the build part from the documented range of minimum versions from 4.6.1 to 4.8.1

Test coverage

N/A

Other details

@chrisnas chrisnas requested a review from a team as a code owner May 14, 2025 15:26
@github-actions github-actions bot added the area:profiler Issues related to the continous-profiler label May 14, 2025
@datadog-datadog-prod-us1
Copy link

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

Datadog Report

All test runs f7759fc 🔗

2 Total Test Services: 1 Failed, 1 Passed

Test Services
Service Name Failed Known Flaky New Flaky Passed Skipped Total Time Test Service View
dd-trace-dotnet 1 0 0 255423 2878 19h 48m 20.73s Link
exploration_tests 0 0 0 22085 3 2m 12.84s Link

❌ Failed Tests (1)

  • NoTraceContextAttachedIfFeatureDeactivated - Datadog.Profiler.IntegrationTests.CodeHotspot.CodeHotspotTest - Details

    Expand for error
     Exit code of "Samples.BuggyBits" should be 0 instead of 134 (= 0x86)
     Expected: True
     Actual:   False
    

@pr-commenter
Copy link

pr-commenter bot commented May 14, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #6974 compared to master:

  • 1 benchmarks are slower, with geometric mean 1.151
  • 5 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 ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #6974

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 6.21 KB 6.13 KB -80 B -1.29%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 10.6μs 55.7ns 279ns 0 0 0 5.56 KB
master StartStopWithChild netcoreapp3.1 13.6μs 18.9ns 73.1ns 0 0 0 5.75 KB
master StartStopWithChild net472 22.3μs 122ns 741ns 0.945 0.21 0 6.21 KB
#6974 StartStopWithChild net6.0 10.3μs 57.4ns 377ns 0 0 0 5.56 KB
#6974 StartStopWithChild netcoreapp3.1 13.3μs 68.7ns 350ns 0 0 0 5.77 KB
#6974 StartStopWithChild net472 21.9μs 121ns 782ns 0.977 0.326 0.109 6.13 KB
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #6974

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

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 933μs 101ns 365ns 0 0 0 2.71 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.03ms 636ns 2.29μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.22ms 59.6ns 223ns 0 0 0 3.31 KB
#6974 WriteAndFlushEnrichedTraces net6.0 933μs 355ns 1.38μs 0 0 0 2.7 KB
#6974 WriteAndFlushEnrichedTraces netcoreapp3.1 1.02ms 70.6ns 273ns 0 0 0 2.7 KB
#6974 WriteAndFlushEnrichedTraces net472 1.22ms 254ns 917ns 0 0 0 3.35 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 1.7μs 8.32μs 0 0 0 197.06 KB
master AllCycleSimpleBody netcoreapp3.1 482μs 1.86μs 7.2μs 0 0 0 204.77 KB
master AllCycleSimpleBody net472 437μs 123ns 442ns 36.6 2.16 0 236.35 KB
master AllCycleMoreComplexBody net6.0 339μs 1.71μs 7.24μs 0 0 0 200.56 KB
master AllCycleMoreComplexBody netcoreapp3.1 489μs 2.03μs 7.59μs 0 0 0 208.18 KB
master AllCycleMoreComplexBody net472 447μs 113ns 422ns 37.9 2.23 0 239.88 KB
master ObjectExtractorSimpleBody net6.0 313ns 1.66ns 7.45ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 399ns 2.18ns 12.3ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 301ns 0.0444ns 0.16ns 0.044 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.44μs 7.86ns 30.5ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.78μs 38.6ns 164ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.67μs 1.59ns 6.14ns 0.6 0 0 3.8 KB
#6974 AllCycleSimpleBody net6.0 330μs 141ns 509ns 0 0 0 197.06 KB
#6974 AllCycleSimpleBody netcoreapp3.1 512μs 1.23μs 4.59μs 0 0 0 204.77 KB
#6974 AllCycleSimpleBody net472 437μs 117ns 452ns 36.6 2.16 0 236.35 KB
#6974 AllCycleMoreComplexBody net6.0 339μs 564ns 2.19μs 0 0 0 200.56 KB
#6974 AllCycleMoreComplexBody netcoreapp3.1 519μs 432ns 1.67μs 0 0 0 208.18 KB
#6974 AllCycleMoreComplexBody net472 445μs 95.5ns 357ns 36.6 2.16 0 239.87 KB
#6974 ObjectExtractorSimpleBody net6.0 328ns 0.346ns 1.34ns 0 0 0 280 B
#6974 ObjectExtractorSimpleBody netcoreapp3.1 398ns 0.166ns 0.645ns 0 0 0 272 B
#6974 ObjectExtractorSimpleBody net472 306ns 0.177ns 0.686ns 0.0443 0 0 281 B
#6974 ObjectExtractorMoreComplexBody net6.0 6.42μs 3.75ns 14.5ns 0 0 0 3.78 KB
#6974 ObjectExtractorMoreComplexBody netcoreapp3.1 7.69μs 37.2ns 162ns 0 0 0 3.69 KB
#6974 ObjectExtractorMoreComplexBody net472 6.68μs 2.49ns 9.66ns 0.601 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
#6974 EncodeArgs net6.0 N/A N/A N/A NaN NaN NaN 0 b
#6974 EncodeArgs netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#6974 EncodeArgs net472 N/A N/A N/A NaN NaN NaN 0 b
#6974 EncodeLegacyArgs net6.0 N/A N/A N/A NaN NaN NaN 0 b
#6974 EncodeLegacyArgs netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#6974 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
#6974 RunWafRealisticBenchmark net6.0 N/A N/A N/A NaN NaN NaN 0 b
#6974 RunWafRealisticBenchmark netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#6974 RunWafRealisticBenchmark net472 N/A N/A N/A NaN NaN NaN 0 b
#6974 RunWafRealisticBenchmarkWithAttack net6.0 N/A N/A N/A NaN NaN NaN 0 b
#6974 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#6974 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 60.5μs 68.6ns 266ns 0 0 0 14.53 KB
master SendRequest netcoreapp3.1 72.1μs 116ns 451ns 0 0 0 17.42 KB
master SendRequest net472 0.00504ns 0.0017ns 0.00658ns 0 0 0 0 b
#6974 SendRequest net6.0 61.8μs 93.3ns 349ns 0 0 0 14.53 KB
#6974 SendRequest netcoreapp3.1 71.8μs 160ns 618ns 0 0 0 17.42 KB
#6974 SendRequest net472 0.0146ns 0.0021ns 0.00814ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #6974

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 41.72 KB 41.96 KB 231 B 0.55%

Fewer allocations 🎉 in #6974

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 42.12 KB 41.89 KB -227 B -0.54%
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 56.32 KB 55.97 KB -354 B -0.63%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 693μs 3.6μs 16.9μs 0 0 0 41.72 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 681μs 3.59μs 17.9μs 0 0 0 42.12 KB
master WriteAndFlushEnrichedTraces net472 837μs 1.55μs 5.6μs 8.33 0 0 56.32 KB
#6974 WriteAndFlushEnrichedTraces net6.0 730μs 1.25μs 4.85μs 0 0 0 41.96 KB
#6974 WriteAndFlushEnrichedTraces netcoreapp3.1 697μs 2.29μs 8.87μs 0 0 0 41.89 KB
#6974 WriteAndFlushEnrichedTraces net472 827μs 1.64μs 5.68μs 7.81 0 0 55.97 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 2.01μs 0.773ns 3ns 0 0 0 1.03 KB
master ExecuteNonQuery netcoreapp3.1 2.44μs 5.79ns 22.4ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.77μs 2.49ns 9.32ns 0.153 0.0139 0 995 B
#6974 ExecuteNonQuery net6.0 1.98μs 2.55ns 9.88ns 0 0 0 1.03 KB
#6974 ExecuteNonQuery netcoreapp3.1 2.45μs 5.7ns 20.6ns 0 0 0 1.02 KB
#6974 ExecuteNonQuery net472 2.73μs 3.91ns 15.2ns 0.15 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.73μs 9.07ns 47.1ns 0 0 0 1.04 KB
master CallElasticsearch netcoreapp3.1 2.31μs 2.25ns 8.71ns 0 0 0 1.04 KB
master CallElasticsearch net472 3.63μs 2.56ns 9.92ns 0.162 0 0 1.05 KB
master CallElasticsearchAsync net6.0 1.81μs 2.53ns 9.79ns 0 0 0 1.02 KB
master CallElasticsearchAsync netcoreapp3.1 2.31μs 10.7ns 41.3ns 0 0 0 1.09 KB
master CallElasticsearchAsync net472 3.85μs 3.89ns 15.1ns 0.173 0 0 1.11 KB
#6974 CallElasticsearch net6.0 1.74μs 8.4ns 36.6ns 0 0 0 1.04 KB
#6974 CallElasticsearch netcoreapp3.1 2.31μs 11.9ns 59.5ns 0 0 0 1.04 KB
#6974 CallElasticsearch net472 3.43μs 2.53ns 9.79ns 0.155 0 0 1.05 KB
#6974 CallElasticsearchAsync net6.0 1.79μs 9.1ns 40.7ns 0 0 0 1.02 KB
#6974 CallElasticsearchAsync netcoreapp3.1 2.41μs 8.2ns 31.7ns 0 0 0 1.09 KB
#6974 CallElasticsearchAsync net472 3.68μs 1.47ns 5.3ns 0.166 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.82μs 4.46ns 17.3ns 0 0 0 960 B
master ExecuteAsync netcoreapp3.1 2.35μs 3.32ns 12.4ns 0 0 0 960 B
master ExecuteAsync net472 2.55μs 3.67ns 14.2ns 0.14 0 0 923 B
#6974 ExecuteAsync net6.0 1.9μs 5.07ns 19.6ns 0 0 0 960 B
#6974 ExecuteAsync netcoreapp3.1 2.43μs 6.27ns 24.3ns 0 0 0 960 B
#6974 ExecuteAsync net472 2.57μs 3.19ns 12.4ns 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.03μs 2.24ns 8.06ns 0 0 0 2.37 KB
master SendAsync netcoreapp3.1 8.41μs 10.8ns 40.5ns 0 0 0 2.9 KB
master SendAsync net472 12.4μs 13.7ns 51.1ns 0.495 0 0 3.19 KB
#6974 SendAsync net6.0 7.17μs 5.69ns 20.5ns 0 0 0 2.37 KB
#6974 SendAsync netcoreapp3.1 8.8μs 15.5ns 60ns 0 0 0 2.9 KB
#6974 SendAsync net472 12.3μs 10.9ns 42.3ns 0.494 0 0 3.19 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Slower ⚠️ More allocations ⚠️

Slower ⚠️ in #6974

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 1.151 441,700.00 508,600.00

More allocations ⚠️ in #6974

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 258.77 KB 277.44 KB 18.67 KB 7.22%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 258.83 KB 273.89 KB 15.06 KB 5.82%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 42.8 KB 43.96 KB 1.16 KB 2.71%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 43.1 KB 43.7 KB 600 B 1.39%

Fewer allocations 🎉 in #6974

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net472 286.72 KB 278.53 KB -8.19 KB -2.86%
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 42.7μs 152ns 528ns 0 0 0 43.1 KB
master StringConcatBenchmark netcoreapp3.1 50μs 296ns 2.85μs 0 0 0 42.8 KB
master StringConcatBenchmark net472 57.1μs 177ns 662ns 0 0 0 65.54 KB
master StringConcatAspectBenchmark net6.0 445μs 2.01μs 7.5μs 0 0 0 258.77 KB
master StringConcatAspectBenchmark netcoreapp3.1 516μs 2.44μs 9.14μs 0 0 0 258.83 KB
master StringConcatAspectBenchmark net472 404μs 1.52μs 5.49μs 0 0 0 286.72 KB
#6974 StringConcatBenchmark net6.0 47.2μs 690ns 6.83μs 0 0 0 43.7 KB
#6974 StringConcatBenchmark netcoreapp3.1 49μs 252ns 1.8μs 0 0 0 43.96 KB
#6974 StringConcatBenchmark net472 57.9μs 148ns 553ns 0 0 0 57.34 KB
#6974 StringConcatAspectBenchmark net6.0 512μs 2.22μs 9.66μs 0 0 0 277.44 KB
#6974 StringConcatAspectBenchmark netcoreapp3.1 563μs 2.36μs 8.83μs 0 0 0 273.89 KB
#6974 StringConcatAspectBenchmark net472 408μs 2.28μs 14.1μ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.6μs 12.4ns 48.1ns 0 0 0 1.76 KB
master EnrichedLog netcoreapp3.1 3.4μs 11.3ns 42.3ns 0 0 0 1.76 KB
master EnrichedLog net472 3.82μs 3.22ns 12.5ns 0.266 0 0 1.69 KB
#6974 EnrichedLog net6.0 2.63μs 9.9ns 35.7ns 0 0 0 1.76 KB
#6974 EnrichedLog netcoreapp3.1 3.38μs 17.3ns 81.3ns 0 0 0 1.76 KB
#6974 EnrichedLog net472 3.85μs 3.66ns 14.2ns 0.25 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 123μs 79.2ns 285ns 0 0 0 4.37 KB
master EnrichedLog netcoreapp3.1 127μs 129ns 465ns 0 0 0 4.37 KB
master EnrichedLog net472 168μs 157ns 609ns 0 0 0 4.57 KB
#6974 EnrichedLog net6.0 123μs 49.5ns 185ns 0 0 0 4.37 KB
#6974 EnrichedLog netcoreapp3.1 128μs 203ns 732ns 0 0 0 4.37 KB
#6974 EnrichedLog net472 167μs 285ns 1.1μs 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.87μs 20.2ns 75.5ns 0 0 0 2.32 KB
master EnrichedLog netcoreapp3.1 6.65μs 20.9ns 81ns 0 0 0 2.32 KB
master EnrichedLog net472 7.32μs 6.33ns 23.7ns 0.331 0 0 2.14 KB
#6974 EnrichedLog net6.0 4.89μs 22.5ns 87ns 0 0 0 2.32 KB
#6974 EnrichedLog netcoreapp3.1 6.64μs 23.7ns 91.6ns 0 0 0 2.32 KB
#6974 EnrichedLog net472 7.41μs 9.68ns 37.5ns 0.331 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 10.6ns 55.1ns 0 0 0 1.21 KB
master SendReceive netcoreapp3.1 2.57μs 11.3ns 43.7ns 0 0 0 1.21 KB
master SendReceive net472 3.09μs 7.42ns 28.7ns 0.187 0 0 1.21 KB
#6974 SendReceive net6.0 2.04μs 9.73ns 37.7ns 0 0 0 1.21 KB
#6974 SendReceive netcoreapp3.1 2.56μs 3.51ns 13.6ns 0 0 0 1.21 KB
#6974 SendReceive net472 3.13μs 2.76ns 10.7ns 0.187 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.17μs 10.5ns 40.8ns 0 0 0 1.64 KB
master EnrichedLog netcoreapp3.1 5.7μs 7.69ns 28.8ns 0 0 0 1.69 KB
master EnrichedLog net472 6.49μs 5.26ns 20.4ns 0.322 0 0 2.08 KB
#6974 EnrichedLog net6.0 4.21μs 9.18ns 35.5ns 0 0 0 1.64 KB
#6974 EnrichedLog netcoreapp3.1 5.61μs 9.65ns 37.4ns 0 0 0 1.69 KB
#6974 EnrichedLog net472 6.6μs 6.31ns 24.4ns 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 744ns 3.99ns 20.7ns 0 0 0 584 B
master StartFinishSpan netcoreapp3.1 935ns 4.42ns 17.7ns 0 0 0 584 B
master StartFinishSpan net472 901ns 2.05ns 7.92ns 0.0912 0 0 586 B
master StartFinishScope net6.0 897ns 0.242ns 0.907ns 0 0 0 704 B
master StartFinishScope netcoreapp3.1 1.15μs 1.18ns 4.57ns 0 0 0 704 B
master StartFinishScope net472 1.13μs 0.245ns 0.949ns 0.102 0 0 666 B
#6974 StartFinishSpan net6.0 748ns 4.09ns 22.4ns 0 0 0 584 B
#6974 StartFinishSpan netcoreapp3.1 942ns 0.388ns 1.4ns 0 0 0 584 B
#6974 StartFinishSpan net472 921ns 1.87ns 7.23ns 0.0888 0 0 586 B
#6974 StartFinishScope net6.0 883ns 4.61ns 24ns 0 0 0 704 B
#6974 StartFinishScope netcoreapp3.1 1.18μs 5.9ns 27.7ns 0 0 0 704 B
#6974 StartFinishScope net472 1.13μs 0.0767ns 0.287ns 0.102 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 0.432ns 1.67ns 0 0 0 704 B
master RunOnMethodBegin netcoreapp3.1 1.36μs 1.31ns 4.72ns 0 0 0 704 B
master RunOnMethodBegin net472 1.4μs 2.21ns 8.57ns 0.105 0 0 666 B
#6974 RunOnMethodBegin net6.0 1.02μs 4.8ns 18.6ns 0 0 0 704 B
#6974 RunOnMethodBegin netcoreapp3.1 1.33μs 6.25ns 24.2ns 0 0 0 704 B
#6974 RunOnMethodBegin net472 1.4μs 1.81ns 7.02ns 0.103 0 0 666 B

@andrewlock
Copy link
Member

andrewlock commented May 14, 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 Baseline
    This PR (6974) - mean (68ms)  : 65, 72
     .   : milestone, 68,
    master - mean (68ms)  : 65, 71
     .   : milestone, 68,

    section CallTarget+Inlining+NGEN
    This PR (6974) - mean (1,011ms)  : 983, 1039
     .   : milestone, 1011,
    master - mean (1,008ms)  : 982, 1034
     .   : milestone, 1008,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6974) - mean (102ms)  : 100, 105
     .   : milestone, 102,
    master - mean (102ms)  : 100, 104
     .   : milestone, 102,

    section CallTarget+Inlining+NGEN
    This PR (6974) - mean (695ms)  : 676, 715
     .   : milestone, 695,
    master - mean (693ms)  : 673, 714
     .   : milestone, 693,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6974) - mean (89ms)  : 87, 91
     .   : milestone, 89,
    master - mean (89ms)  : 87, 91
     .   : milestone, 89,

    section CallTarget+Inlining+NGEN
    This PR (6974) - mean (654ms)  : 635, 673
     .   : milestone, 654,
    master - mean (658ms)  : 632, 683
     .   : milestone, 658,

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

    section CallTarget+Inlining+NGEN
    This PR (6974) - mean (1,112ms)  : 1078, 1147
     .   : milestone, 1112,
    master - mean (1,107ms)  : 1080, 1133
     .   : milestone, 1107,

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

    section CallTarget+Inlining+NGEN
    This PR (6974) - mean (878ms)  : 844, 912
     .   : milestone, 878,
    master - mean (873ms)  : 840, 905
     .   : milestone, 873,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6974) - mean (260ms)  : 257, 264
     .   : milestone, 260,
    master - mean (261ms)  : 257, 265
     .   : milestone, 261,

    section CallTarget+Inlining+NGEN
    This PR (6974) - mean (866ms)  : 837, 895
     .   : milestone, 866,
    master - mean (868ms)  : 834, 902
     .   : milestone, 868,

Loading

Copy link
Collaborator

@gleocadie gleocadie left a comment

Choose a reason for hiding this comment

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

only one comment

@chrisnas chrisnas merged commit 646fddf into master May 20, 2025
129 of 134 checks passed
@chrisnas chrisnas deleted the chrisnas/fix_framework_version branch May 20, 2025 14:37
@github-actions github-actions bot added this to the vNext-v3 milestone May 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:profiler Issues related to the continous-profiler
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants