Skip to content
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

[Benchmarks] Migrate Windows throughput tests #6785

Open
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

faydef
Copy link
Contributor

@faydef faydef commented Mar 20, 2025

Summary of changes

This PR enables running the Windows based throughput tests through the Benchmarking platform on Gitlab.
The tests are setup to run:

  • On commit to the master branch
  • On schedule if BENCHMARK_RUN is set to "true" for the scheduled pipeline.
  • On manual trigger (keep in mind that it requires build artifacts from the Azure Pipeline)

The results can be checked on the following dashboard (please check the different views as there is a specific view for windows)

Reason for change

  • The throughput tests previously running on AzDo have been decommissioned.

Implementation details

More documentation to come

Additional notes:

@datadog-datadog-prod-us1
Copy link

datadog-datadog-prod-us1 bot commented Mar 20, 2025

Datadog Report

Branch report: fayssal/windows-throughput-tests-migration
Commit report: e0005e4
Test service: dd-trace-dotnet

✅ 0 Failed, 237053 Passed, 1704 Skipped, 15h 18m 32.1s Total Time

@andrewlock
Copy link
Member

andrewlock commented Mar 20, 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).

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6785) - mean (70ms)  : 68, 73
     .   : milestone, 70,
    master - mean (69ms)  : 67, 72
     .   : milestone, 69,

    section CallTarget+Inlining+NGEN
    This PR (6785) - mean (1,009ms)  : 988, 1031
     .   : milestone, 1009,
    master - mean (1,006ms)  : 985, 1026
     .   : milestone, 1006,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6785) - mean (108ms)  : 103, 112
     .   : milestone, 108,
    master - mean (103ms)  : 101, 105
     .   : milestone, 103,

    section CallTarget+Inlining+NGEN
    This PR (6785) - mean (702ms)  : 681, 723
     .   : milestone, 702,
    master - mean (687ms)  : 667, 708
     .   : milestone, 687,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6785) - mean (92ms)  : 88, 95
     .   : milestone, 92,
    master - mean (90ms)  : 88, 92
     .   : milestone, 90,

    section CallTarget+Inlining+NGEN
    This PR (6785) - mean (648ms)  : 630, 666
     .   : milestone, 648,
    master - mean (645ms)  : 626, 664
     .   : milestone, 645,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6785) - mean (190ms)  : 186, 194
     .   : milestone, 190,
    master - mean (191ms)  : 184, 197
     .   : milestone, 191,

    section CallTarget+Inlining+NGEN
    This PR (6785) - mean (1,104ms)  : 1081, 1128
     .   : milestone, 1104,
    master - mean (1,110ms)  : 1079, 1141
     .   : milestone, 1110,

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

    section CallTarget+Inlining+NGEN
    This PR (6785) - mean (871ms)  : 843, 899
     .   : milestone, 871,
    master - mean (872ms)  : 847, 898
     .   : milestone, 872,

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

    section CallTarget+Inlining+NGEN
    This PR (6785) - mean (854ms)  : 822, 885
     .   : milestone, 854,
    master - mean (858ms)  : 824, 892
     .   : milestone, 858,

@andrewlock
Copy link
Member

andrewlock commented Mar 20, 2025

Benchmarks Report for tracer 🐌

Benchmarks for #6785 compared to master:

  • 2 benchmarks are faster, with geometric mean 1.127
  • 1 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 7.96μs 44.7ns 313ns 0.0202 0.00809 0 5.62 KB
master StartStopWithChild netcoreapp3.1 10.1μs 55.5ns 356ns 0.024 0.0144 0.00479 5.8 KB
master StartStopWithChild net472 16.2μs 56.4ns 219ns 1.04 0.299 0.0968 6.21 KB
#6785 StartStopWithChild net6.0 7.89μs 42.4ns 220ns 0.0152 0.00761 0 5.61 KB
#6785 StartStopWithChild netcoreapp3.1 10.2μs 56.9ns 378ns 0.0204 0.0102 0 5.8 KB
#6785 StartStopWithChild net472 16.4μs 31.3ns 113ns 1.04 0.305 0.0962 6.21 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 499μs 260ns 937ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 649μs 400ns 1.55μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 843μs 573ns 2.22μs 0.419 0 0 3.3 KB
#6785 WriteAndFlushEnrichedTraces net6.0 496μs 697ns 2.61μs 0 0 0 2.7 KB
#6785 WriteAndFlushEnrichedTraces netcoreapp3.1 661μs 875ns 3.39μs 0 0 0 2.7 KB
#6785 WriteAndFlushEnrichedTraces net472 837μs 658ns 2.46μs 0.417 0 0 3.3 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 130μs 578ns 2.24μs 0.198 0 0 14.47 KB
master SendRequest netcoreapp3.1 150μs 234ns 907ns 0.223 0 0 17.27 KB
master SendRequest net472 0.000986ns 0.000254ns 0.000949ns 0 0 0 0 b
#6785 SendRequest net6.0 132μs 484ns 1.87μs 0.135 0 0 14.47 KB
#6785 SendRequest netcoreapp3.1 145μs 428ns 1.66μs 0.211 0 0 17.27 KB
#6785 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #6785

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 41.62 KB 41.86 KB 235 B 0.56%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 570μs 2.74μs 11μs 0.568 0 0 41.68 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 680μs 3.77μs 24.7μs 0.347 0 0 41.62 KB
master WriteAndFlushEnrichedTraces net472 851μs 4.17μs 17.7μs 8.22 2.47 0.411 53.32 KB
#6785 WriteAndFlushEnrichedTraces net6.0 592μs 3.28μs 19.4μs 0.581 0 0 41.76 KB
#6785 WriteAndFlushEnrichedTraces netcoreapp3.1 685μs 4.45μs 43.8μs 0.353 0 0 41.86 KB
#6785 WriteAndFlushEnrichedTraces net472 891μs 4.08μs 16.3μs 8.42 2.66 0.443 53.35 KB
Benchmarks.Trace.DbCommandBenchmark - Faster 🎉 Same allocations ✔️

Faster 🎉 in #6785

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑net6.0 1.124 1,426.92 1,268.95

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net6.0 1.43μs 1.54ns 5.95ns 0.0142 0 0 1.02 KB
master ExecuteNonQuery netcoreapp3.1 1.77μs 2.3ns 8.91ns 0.0133 0 0 1.02 KB
master ExecuteNonQuery net472 2.1μs 1.62ns 5.85ns 0.156 0.00107 0 987 B
#6785 ExecuteNonQuery net6.0 1.26μs 3.64ns 14.1ns 0.014 0 0 1.02 KB
#6785 ExecuteNonQuery netcoreapp3.1 1.84μs 2ns 7.74ns 0.0138 0 0 1.02 KB
#6785 ExecuteNonQuery net472 2.14μs 5.63ns 21.8ns 0.156 0.00105 0 987 B
Benchmarks.Trace.ElasticsearchBenchmark - Faster 🎉 Same allocations ✔️

Faster 🎉 in #6785

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑net6.0 1.130 1,395.38 1,234.56

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master CallElasticsearch net6.0 1.25μs 0.455ns 1.76ns 0.0138 0 0 976 B
master CallElasticsearch netcoreapp3.1 1.58μs 4.69ns 18.2ns 0.0134 0 0 976 B
master CallElasticsearch net472 2.73μs 1.3ns 4.87ns 0.157 0 0 995 B
master CallElasticsearchAsync net6.0 1.4μs 0.516ns 2ns 0.0133 0 0 952 B
master CallElasticsearchAsync netcoreapp3.1 1.62μs 1.27ns 4.58ns 0.0139 0 0 1.02 KB
master CallElasticsearchAsync net472 2.68μs 1.27ns 4.92ns 0.167 0 0 1.05 KB
#6785 CallElasticsearch net6.0 1.18μs 0.396ns 1.43ns 0.0136 0 0 976 B
#6785 CallElasticsearch netcoreapp3.1 1.59μs 1.35ns 5.23ns 0.0129 0 0 976 B
#6785 CallElasticsearch net472 2.55μs 1.89ns 7.31ns 0.157 0 0 995 B
#6785 CallElasticsearchAsync net6.0 1.23μs 0.677ns 2.53ns 0.0135 0 0 952 B
#6785 CallElasticsearchAsync netcoreapp3.1 1.64μs 0.77ns 2.88ns 0.014 0 0 1.02 KB
#6785 CallElasticsearchAsync net472 2.64μs 1.51ns 5.85ns 0.166 0 0 1.05 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.35μs 1.29ns 4.83ns 0.0134 0 0 952 B
master ExecuteAsync netcoreapp3.1 1.67μs 0.933ns 3.36ns 0.0125 0 0 952 B
master ExecuteAsync net472 1.76μs 0.378ns 1.31ns 0.145 0 0 915 B
#6785 ExecuteAsync net6.0 1.24μs 0.459ns 1.72ns 0.013 0 0 952 B
#6785 ExecuteAsync netcoreapp3.1 1.56μs 1.04ns 4.02ns 0.0125 0 0 952 B
#6785 ExecuteAsync net472 1.72μs 0.87ns 3.37ns 0.145 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 4.41μs 1.19ns 4.6ns 0.033 0 0 2.31 KB
master SendAsync netcoreapp3.1 5.34μs 2.59ns 10ns 0.0376 0 0 2.85 KB
master SendAsync net472 7.51μs 1.99ns 7.45ns 0.495 0 0 3.12 KB
#6785 SendAsync net6.0 4.45μs 1.25ns 4.86ns 0.0311 0 0 2.31 KB
#6785 SendAsync netcoreapp3.1 5.31μs 2.47ns 9.57ns 0.0375 0 0 2.85 KB
#6785 SendAsync net472 7.54μs 1.85ns 7.16ns 0.493 0 0 3.12 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 1.62μs 1.11ns 4.16ns 0.0233 0 0 1.69 KB
master EnrichedLog netcoreapp3.1 2.34μs 0.923ns 3.33ns 0.0223 0 0 1.69 KB
master EnrichedLog net472 2.67μs 1.21ns 4.52ns 0.258 0 0 1.62 KB
#6785 EnrichedLog net6.0 1.59μs 0.7ns 2.71ns 0.0239 0 0 1.69 KB
#6785 EnrichedLog netcoreapp3.1 2.33μs 0.764ns 2.96ns 0.0224 0 0 1.69 KB
#6785 EnrichedLog net472 2.57μs 1.2ns 4.65ns 0.258 0 0 1.62 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 111μs 164ns 636ns 0 0 0 4.3 KB
master EnrichedLog netcoreapp3.1 118μs 267ns 1.04μs 0 0 0 4.3 KB
master EnrichedLog net472 151μs 135ns 523ns 0.679 0.226 0 4.49 KB
#6785 EnrichedLog net6.0 115μs 82.3ns 308ns 0 0 0 4.3 KB
#6785 EnrichedLog netcoreapp3.1 118μs 181ns 702ns 0.0587 0 0 4.3 KB
#6785 EnrichedLog net472 151μs 159ns 615ns 0.676 0.225 0 4.49 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 3.07μs 1.06ns 3.67ns 0.0318 0 0 2.25 KB
master EnrichedLog netcoreapp3.1 4.19μs 3.78ns 14.6ns 0.0293 0 0 2.25 KB
master EnrichedLog net472 4.94μs 2.56ns 9.93ns 0.328 0 0 2.07 KB
#6785 EnrichedLog net6.0 2.95μs 0.769ns 2.77ns 0.0311 0 0 2.25 KB
#6785 EnrichedLog netcoreapp3.1 4.29μs 0.878ns 3.17ns 0.03 0 0 2.25 KB
#6785 EnrichedLog net472 4.81μs 2.05ns 7.93ns 0.327 0 0 2.07 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.34μs 1.76ns 6.84ns 0.0161 0 0 1.14 KB
master SendReceive netcoreapp3.1 1.79μs 0.716ns 2.77ns 0.0151 0 0 1.14 KB
master SendReceive net472 2.08μs 1.31ns 4.88ns 0.184 0 0 1.16 KB
#6785 SendReceive net6.0 1.33μs 0.291ns 1.05ns 0.0159 0 0 1.14 KB
#6785 SendReceive netcoreapp3.1 1.78μs 1.52ns 5.88ns 0.0153 0 0 1.14 KB
#6785 SendReceive net472 2.11μs 1.85ns 6.94ns 0.183 0 0 1.16 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 2.67μs 0.706ns 2.64ns 0.0226 0 0 1.62 KB
master EnrichedLog netcoreapp3.1 3.96μs 1.49ns 5.75ns 0.0218 0 0 1.67 KB
master EnrichedLog net472 4.37μs 5.01ns 19.4ns 0.328 0 0 2.07 KB
#6785 EnrichedLog net6.0 2.89μs 2.28ns 8.85ns 0.023 0 0 1.62 KB
#6785 EnrichedLog netcoreapp3.1 4.11μs 1.15ns 4.45ns 0.0225 0 0 1.67 KB
#6785 EnrichedLog net472 4.22μs 1.14ns 4.27ns 0.327 0 0 2.07 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 429ns 0.18ns 0.673ns 0.00814 0 0 576 B
master StartFinishSpan netcoreapp3.1 554ns 0.301ns 1.17ns 0.0078 0 0 576 B
master StartFinishSpan net472 642ns 0.2ns 0.748ns 0.0917 0 0 578 B
master StartFinishScope net6.0 494ns 0.122ns 0.473ns 0.00981 0 0 696 B
master StartFinishScope netcoreapp3.1 718ns 0.573ns 2.22ns 0.00921 0 0 696 B
master StartFinishScope net472 815ns 0.307ns 1.19ns 0.105 0 0 658 B
#6785 StartFinishSpan net6.0 393ns 0.117ns 0.437ns 0.00802 0 0 576 B
#6785 StartFinishSpan netcoreapp3.1 543ns 0.253ns 0.981ns 0.00786 0 0 576 B
#6785 StartFinishSpan net472 670ns 0.811ns 3.14ns 0.0918 0 0 578 B
#6785 StartFinishScope net6.0 523ns 0.173ns 0.647ns 0.00983 0 0 696 B
#6785 StartFinishScope netcoreapp3.1 664ns 0.334ns 1.25ns 0.00937 0 0 696 B
#6785 StartFinishScope net472 894ns 0.544ns 2.11ns 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 619ns 1.84ns 7.12ns 0.00988 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 956ns 0.501ns 1.94ns 0.0092 0 0 696 B
master RunOnMethodBegin net472 1.1μs 0.272ns 0.98ns 0.104 0 0 658 B
#6785 RunOnMethodBegin net6.0 682ns 1.66ns 6.42ns 0.00962 0 0 696 B
#6785 RunOnMethodBegin netcoreapp3.1 896ns 0.43ns 1.67ns 0.00942 0 0 696 B
#6785 RunOnMethodBegin net472 1.08μs 0.315ns 1.22ns 0.105 0 0 658 B

@faydef faydef changed the title add jobs to trigger macrobenchmarks from dd-trace-dotnet repo [Benchmarks] Migrate Windows throughput tests Mar 21, 2025
@faydef faydef marked this pull request as ready for review March 21, 2025 08:37
@faydef faydef requested a review from a team as a code owner March 21, 2025 08:37
@faydef faydef requested a review from ddyurchenko March 21, 2025 08:38
Copy link
Member

@andrewlock andrewlock left a comment

Choose a reason for hiding this comment

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

IT looks like they're working, so LGTM! Thanks 😄

- export BP_INFRA_KEY_PAIR_NAME=$(cat ~/.aws/key-pair-name.txt)
- export BP_INFRA_KEY_PAIR_PRIVATE_KEY_PATH=~/.aws/key-pair-private-key.pem
- git clone --branch fayssal/migrate-macros-dotnet https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ddbuild.io/DataDog/benchmarking-platform platform
- ./platform/pass-artifatcs-to-windows.sh
Copy link
Contributor

Choose a reason for hiding this comment

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

./platform/pass-artifatcs-to-windows.sh

Typo in script name.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thank you, actually it's a typo in the name of the file downstream itself 😅 (hence why the tests are successful), I'll change the name of the file and thus the name in the script!

image: registry.ddbuild.io/images/benchmarking-platform-tools-ubuntu:dotnet-tests

script:
- export DD_API_KEY=$(aws ssm get-parameter --region us-east-1 --name ci.$CI_PROJECT_NAME.dd_api_key --with-decryption --query "Parameter.Value" --out text)
Copy link
Contributor

Choose a reason for hiding this comment

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

Hey, do you think we can encapsulate it a lil bit better? I would prefer to have a single script call, similar to what we have in https://github.com/DataDog/dd-trace-dotnet/blob/master/.gitlab/benchmarks/macrobenchmarks.yml#L49, SSM details should really belong inside benchmarking-platform repo (and in long term, we should move it to bp-runner, as this seems to be a code used universally for Windows runners).

Copy link
Contributor

Choose a reason for hiding this comment

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

Everything else looks good, we have results in DD dashboard! 🎉
We will need to do some audit of results, it is 4x faster than Linux? Seems interesting!

Copy link
Member

Choose a reason for hiding this comment

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

it is 4x faster than Linux? Seems interesting

Are these running on the same spec machines?! Because that seems very suspect to me😅 For comparison, our previous crank-based implementation showed that Windows was ~10% slower than Linux

Copy link
Contributor

Choose a reason for hiding this comment

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

Yep, same spec, m5.metal. Thank you for confirming Andrew, we definitely need to look into it!

Also, thanks for sharing, that is really lovely dashboard! 🙌 💜

Copy link
Contributor Author

@faydef faydef Mar 21, 2025

Choose a reason for hiding this comment

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

Interesting 🤔 , is cross-os comparison one of the use-cases?

Are these running on the same spec machines?!

Same spec machines yes, although on windows we assign a couple more cpus to the throughput server (anticipating windows being less efficient) .
Now that I think about it, I will revert back to having the same setup across os to ensure we can have the option if wanted!

Copy link
Contributor

Choose a reason for hiding this comment

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

Copy link
Contributor

Choose a reason for hiding this comment

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

although on windows we assign a couple more cpus to the throughput server (anticipating windows being less efficient) .

That must be it.
But it won't hurt to check if instrumentation is applied. Overhead numbers are super small.

.benchmarks-win:
stage: benchmarks-win
needs: ["check_azure_pipeline"]
tags: ["runner:docker"]
Copy link
Contributor

Choose a reason for hiding this comment

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

I think runner: docker is deprecated nowadays and we should use arch:amd64, unless there is really a compelling reason to keep it.

@faydef faydef force-pushed the fayssal/windows-throughput-tests-migration branch from 8d226c3 to ec820c3 Compare March 24, 2025 09:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants