Skip to content

Ensure execution_benchmarks download the profiler#7529

Merged
andrewlock merged 1 commit into
masterfrom
andrew/ci/ensure-profiler-is-there-in-benchmarks
Sep 19, 2025
Merged

Ensure execution_benchmarks download the profiler#7529
andrewlock merged 1 commit into
masterfrom
andrew/ci/ensure-profiler-is-there-in-benchmarks

Conversation

@andrewlock

Copy link
Copy Markdown
Member

Summary of changes

Ensure the profiler files are available in the execution benchmarks

Reason for change

While working on #7287, we discovered that the profiler was not downloaded, which was causing a stable config PInvoke to fail. To more closely replicate customer environments, we should ensure the profiler is available in these benchmarks, as it will impact startup time etc.

Note that we are introducing a separate mitigation in #7287 to handle the scenario where the profiler is not available, e.g. in serverless environments

Implementation details

Download the windows-profiler-home artifact. Note that the windows-tracer-home artifact is already available thanks to the restore-working-directory step, so it's not necessary to re-download it.

Test coverage

This is the test, we'll examine the benchmarks out of interest to see if there's any impact, but fundamentally this is the more "correct" behaviour anyway.

Other details

Blocks #7287

@andrewlock
andrewlock requested a review from a team as a code owner September 18, 2025 09:22
@andrewlock andrewlock added the area:builds project files, build scripts, pipelines, versioning, releases, packages label Sep 18, 2025

@chrisnas chrisnas left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@anna-git anna-git left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🤞

@dd-trace-dotnet-ci-bot

Copy link
Copy Markdown

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) HttpMessageHandler (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7529) - mean (194ms)  : 190, 199
     .   : milestone, 194,
    master - mean (194ms)  : 191, 198
     .   : milestone, 194,

    section Baseline
    This PR (7529) - mean (192ms)  : 186, 197
     .   : milestone, 192,
    master - mean (191ms)  : 188, 194
     .   : milestone, 191,

    section CallTarget+Inlining+NGEN
    This PR (7529) - mean (1,106ms)  : 1064, 1147
     .   : milestone, 1106,
    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 (7529) - mean (274ms)  : 270, 279
     .   : milestone, 274,
    master - mean (274ms)  : 269, 278
     .   : milestone, 274,

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

    section CallTarget+Inlining+NGEN
    This PR (7529) - mean (895ms)  : 857, 932
     .   : milestone, 895,
    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 (7529) - mean (268ms)  : 264, 271
     .   : milestone, 268,
    master - mean (266ms)  : 262, 271
     .   : milestone, 266,

    section Baseline
    This PR (7529) - mean (268ms)  : 263, 273
     .   : milestone, 268,
    master - mean (268ms)  : 261, 274
     .   : milestone, 268,

    section CallTarget+Inlining+NGEN
    This PR (7529) - mean (878ms)  : 830, 926
     .   : milestone, 878,
    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 (7529) - mean (265ms)  : 259, 272
     .   : milestone, 265,
    master - mean (267ms)  : 260, 273
     .   : milestone, 267,

    section Baseline
    This PR (7529) - mean (267ms)  : 262, 272
     .   : milestone, 267,
    master - mean (266ms)  : 258, 273
     .   : milestone, 266,

    section CallTarget+Inlining+NGEN
    This PR (7529) - mean (782ms)  : 756, 809
     .   : milestone, 782,
    master - mean (786ms)  : 764, 809
     .   : milestone, 786,

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

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

    section CallTarget+Inlining+NGEN
    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
    master - mean (107ms)  : 105, 108
     .   : milestone, 107,

    section Baseline
    master - mean (106ms)  : 103, 108
     .   : milestone, 106,

    section CallTarget+Inlining+NGEN
    master - mean (704ms)  : 686, 722
     .   : milestone, 704,

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

    section Baseline
    master - mean (93ms)  : 91, 96
     .   : milestone, 93,

    section CallTarget+Inlining+NGEN
    master - mean (666ms)  : 648, 683
     .   : milestone, 666,

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

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

    section CallTarget+Inlining+NGEN
    master - mean (601ms)  : 591, 612
     .   : milestone, 601,

Loading

@andrewlock
andrewlock merged commit 8de3768 into master Sep 19, 2025
154 checks passed
@andrewlock
andrewlock deleted the andrew/ci/ensure-profiler-is-there-in-benchmarks branch September 19, 2025 09:04
@github-actions github-actions Bot added this to the vNext-v3 milestone Sep 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