-
Notifications
You must be signed in to change notification settings - Fork 147
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
Add Windows Arm64 building in CI #3986
base: master
Are you sure you want to change the base?
Conversation
Datadog ReportBranch report: ❌ ❌ Failed Tests (15)
|
efacc59
to
ffc5172
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
7d8d763
to
c2ee23a
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
c2ee23a
to
54e395e
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
54e395e
to
38b6b91
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
38b6b91
to
b3f275a
Compare
Datadog ReportBranch report: ❌ ❌ Failed Tests (17)
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This msbuild built-in one causes us some complexity so just switch it out Also replace the `ForceWindowsArm64` boolean with an enum so we can have more options
The output of this stage is uploaded as an artifact, but isn't currently published anywhere
This reverts commit d55397fcfb860293802d0a3d7634e9874373f80c.
b3f275a
to
ed46a65
Compare
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:
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.6.2)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (3986) - mean (3,019ms) : 2943, 3094
. : milestone, 3019,
master - mean (3,016ms) : 2875, 3156
. : milestone, 3016,
section CallTarget+Inlining+NGEN
This PR (3986) - mean (3,674ms) : 3597, 3752
. : milestone, 3674,
master - mean (3,673ms) : 3589, 3757
. : milestone, 3673,
gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (3986) - mean (3,133ms) : 2990, 3275
. : milestone, 3133,
master - mean (3,122ms) : 2990, 3253
. : milestone, 3122,
section CallTarget+Inlining+NGEN
This PR (3986) - mean (3,540ms) : 3455, 3625
. : milestone, 3540,
master - mean (3,538ms) : 3415, 3661
. : milestone, 3538,
gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (3986) - mean (3,100ms) : 2966, 3234
. : milestone, 3100,
master - mean (3,074ms) : 2958, 3190
. : milestone, 3074,
section CallTarget+Inlining+NGEN
This PR (3986) - mean (3,512ms) : 3446, 3578
. : milestone, 3512,
master - mean (3,512ms) : 3418, 3606
. : milestone, 3512,
gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (3986) - mean (188ms) : 184, 193
. : milestone, 188,
master - mean (188ms) : 184, 193
. : milestone, 188,
section CallTarget+Inlining+NGEN
This PR (3986) - mean (944ms) : 916, 973
. : milestone, 944,
master - mean (938ms) : 905, 971
. : milestone, 938,
gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (3986) - mean (369ms) : 363, 375
. : milestone, 369,
master - mean (369ms) : 361, 378
. : milestone, 369,
section CallTarget+Inlining+NGEN
This PR (3986) - mean (1,087ms) : 1055, 1120
. : milestone, 1087,
master - mean (1,088ms) : 1057, 1120
. : milestone, 1088,
gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (3986) - mean (356ms) : 352, 361
. : milestone, 356,
master - mean (356ms) : 350, 362
. : milestone, 356,
section CallTarget+Inlining+NGEN
This PR (3986) - mean (1,035ms) : 1009, 1060
. : milestone, 1035,
master - mean (1,041ms) : 1010, 1072
. : milestone, 1041,
|
Benchmarks Report 🐌Benchmarks for #3986 compared to master:
The following thresholds were used for comparing the benchmark speeds:
Allocation changes below 0.5% are ignored. Benchmark detailsBenchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.AppSecBodyBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ Fewer allocations 🎉
|
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 | 42.14 KB | 41.68 KB | -461 B | -1.09% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 616μs | 1.85μs | 7.17μs | 0.308 | 0 | 0 | 42.14 KB |
master | WriteAndFlushEnrichedTraces |
net472 | 809μs | 3.63μs | 14μs | 8.36 | 2.39 | 0.398 | 53.27 KB |
#3986 | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 596μs | 1.03μs | 3.85μs | 0.305 | 0 | 0 | 41.68 KB |
#3986 | WriteAndFlushEnrichedTraces |
net472 | 792μs | 3.48μs | 13.5μs | 8.36 | 2.39 | 0.398 | 53.24 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 |
netcoreapp3.1 | 1.32μs | 0.748ns | 2.8ns | 0.0119 | 0 | 0 | 904 B |
master | ExecuteNonQuery |
net472 | 1.67μs | 1.63ns | 6.3ns | 0.144 | 0.000828 | 0 | 907 B |
#3986 | ExecuteNonQuery |
netcoreapp3.1 | 1.28μs | 0.884ns | 3.31ns | 0.0121 | 0 | 0 | 904 B |
#3986 | ExecuteNonQuery |
net472 | 1.77μs | 2.44ns | 9.43ns | 0.144 | 0 | 0 | 907 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 |
netcoreapp3.1 | 1.34μs | 0.478ns | 1.79ns | 0.014 | 0 | 0 | 1.06 KB |
master | CallElasticsearch |
net472 | 2.06μs | 0.632ns | 2.45ns | 0.176 | 0 | 0 | 1.11 KB |
master | CallElasticsearchAsync |
netcoreapp3.1 | 1.43μs | 0.4ns | 1.5ns | 0.0164 | 0 | 0 | 1.18 KB |
master | CallElasticsearchAsync |
net472 | 2.34μs | 0.8ns | 3.1ns | 0.197 | 0 | 0 | 1.24 KB |
#3986 | CallElasticsearch |
netcoreapp3.1 | 1.34μs | 0.348ns | 1.26ns | 0.0141 | 0 | 0 | 1.06 KB |
#3986 | CallElasticsearch |
net472 | 2.26μs | 0.749ns | 2.9ns | 0.175 | 0.00114 | 0 | 1.11 KB |
#3986 | CallElasticsearchAsync |
netcoreapp3.1 | 1.41μs | 0.611ns | 2.29ns | 0.0156 | 0 | 0 | 1.18 KB |
#3986 | CallElasticsearchAsync |
net472 | 2.49μs | 0.53ns | 1.98ns | 0.197 | 0.00124 | 0 | 1.24 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 |
netcoreapp3.1 | 1.51μs | 1.01ns | 3.91ns | 0.0172 | 0 | 0 | 1.28 KB |
master | ExecuteAsync |
net472 | 1.85μs | 0.505ns | 1.96ns | 0.206 | 0.000926 | 0 | 1.3 KB |
#3986 | ExecuteAsync |
netcoreapp3.1 | 1.47μs | 0.716ns | 2.77ns | 0.0174 | 0 | 0 | 1.28 KB |
#3986 | ExecuteAsync |
net472 | 1.84μs | 0.518ns | 2ns | 0.206 | 0.000917 | 0 | 1.3 KB |
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | SendAsync |
netcoreapp3.1 | 4.17μs | 1.21ns | 4.37ns | 0.0353 | 0 | 0 | 2.66 KB |
master | SendAsync |
net472 | 6.93μs | 2.13ns | 8.26ns | 0.479 | 0 | 0 | 3.03 KB |
#3986 | SendAsync |
netcoreapp3.1 | 4.26μs | 1.39ns | 5.2ns | 0.036 | 0 | 0 | 2.66 KB |
#3986 | SendAsync |
net472 | 6.82μs | 1.93ns | 7.24ns | 0.478 | 0 | 0 | 3.03 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 |
netcoreapp3.1 | 1.95μs | 0.845ns | 3.16ns | 0.0244 | 0 | 0 | 1.83 KB |
master | EnrichedLog |
net472 | 2.49μs | 1.34ns | 5.21ns | 0.284 | 0 | 0 | 1.79 KB |
#3986 | EnrichedLog |
netcoreapp3.1 | 2.01μs | 0.838ns | 3.13ns | 0.0254 | 0 | 0 | 1.83 KB |
#3986 | EnrichedLog |
net472 | 2.52μs | 1.59ns | 5.93ns | 0.284 | 0 | 0 | 1.79 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 |
netcoreapp3.1 | 119μs | 170ns | 660ns | 0.0596 | 0 | 0 | 4.42 KB |
master | EnrichedLog |
net472 | 149μs | 88.7ns | 343ns | 0.672 | 0.224 | 0 | 4.63 KB |
#3986 | EnrichedLog |
netcoreapp3.1 | 118μs | 273ns | 1.06μs | 0 | 0 | 0 | 4.42 KB |
#3986 | EnrichedLog |
net472 | 145μs | 87.7ns | 340ns | 0.726 | 0.218 | 0 | 4.63 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 |
netcoreapp3.1 | 3.81μs | 2.48ns | 9.59ns | 0.0521 | 0 | 0 | 3.9 KB |
master | EnrichedLog |
net472 | 5.32μs | 2.1ns | 8.15ns | 0.565 | 0.00265 | 0 | 3.56 KB |
#3986 | EnrichedLog |
netcoreapp3.1 | 3.96μs | 1.78ns | 6.91ns | 0.0534 | 0 | 0 | 3.9 KB |
#3986 | EnrichedLog |
net472 | 4.99μs | 1.4ns | 5.42ns | 0.565 | 0.00251 | 0 | 3.56 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 |
netcoreapp3.1 | 1.57μs | 0.722ns | 2.6ns | 0.0174 | 0 | 0 | 1.3 KB |
master | SendReceive |
net472 | 1.95μs | 1.78ns | 6.87ns | 0.212 | 0 | 0 | 1.34 KB |
#3986 | SendReceive |
netcoreapp3.1 | 1.6μs | 0.413ns | 1.49ns | 0.0175 | 0 | 0 | 1.3 KB |
#3986 | SendReceive |
net472 | 2.02μs | 1ns | 3.62ns | 0.213 | 0 | 0 | 1.34 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 |
netcoreapp3.1 | 3.75μs | 2.39ns | 8.63ns | 0.0242 | 0 | 0 | 1.78 KB |
master | EnrichedLog |
net472 | 4.34μs | 1.43ns | 5.37ns | 0.349 | 0 | 0 | 2.21 KB |
#3986 | EnrichedLog |
netcoreapp3.1 | 3.73μs | 1.67ns | 6.25ns | 0.0242 | 0 | 0 | 1.78 KB |
#3986 | EnrichedLog |
net472 | 4.33μs | 1.43ns | 5.55ns | 0.349 | 0 | 0 | 2.21 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 |
netcoreapp3.1 | 681ns | 0.181ns | 0.628ns | 0.00956 | 0 | 0 | 720 B |
master | StartFinishSpan |
net472 | 866ns | 0.394ns | 1.53ns | 0.121 | 0 | 0 | 762 B |
master | StartFinishScope |
netcoreapp3.1 | 873ns | 0.539ns | 2.09ns | 0.0113 | 0 | 0 | 840 B |
master | StartFinishScope |
net472 | 1.07μs | 0.483ns | 1.81ns | 0.134 | 0 | 0 | 842 B |
#3986 | StartFinishSpan |
netcoreapp3.1 | 721ns | 0.208ns | 0.805ns | 0.00973 | 0 | 0 | 720 B |
#3986 | StartFinishSpan |
net472 | 866ns | 0.257ns | 0.96ns | 0.121 | 0 | 0 | 762 B |
#3986 | StartFinishScope |
netcoreapp3.1 | 805ns | 0.224ns | 0.809ns | 0.0113 | 0 | 0 | 840 B |
#3986 | StartFinishScope |
net472 | 1.14μs | 1.88ns | 7.29ns | 0.134 | 0 | 0 | 842 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 |
netcoreapp3.1 | 928ns | 1ns | 3.88ns | 0.0112 | 0 | 0 | 840 B |
master | RunOnMethodBegin |
net472 | 1.25μs | 0.613ns | 2.37ns | 0.133 | 0 | 0 | 842 B |
#3986 | RunOnMethodBegin |
netcoreapp3.1 | 868ns | 0.439ns | 1.7ns | 0.0114 | 0 | 0 | 840 B |
#3986 | RunOnMethodBegin |
net472 | 1.25μs | 0.348ns | 1.3ns | 0.134 | 0 | 0 | 842 B |
Throughput/Crank Report:zap:Throughput results for AspNetCoreSimpleController comparing the following branches/commits: Cases where throughput results for the PR are worse than latest master (5% drop or greater), results are shown in red. Note that these results are based on a single point-in-time result for each branch. For full results, see one of the many, many dashboards! gantt
title Throughput Linux x64 (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (3986) (11.357M) : 0, 11357200
master (11.385M) : 0, 11385161
benchmarks/2.9.0 (11.162M) : 0, 11161538
section Automatic
This PR (3986) (7.948M) : 0, 7948082
master (7.915M) : 0, 7914877
benchmarks/2.9.0 (8.099M) : 0, 8099075
section Trace stats
master (8.075M) : 0, 8074667
section Manual
This PR (3986) (9.588M) : 0, 9587622
master (9.743M) : 0, 9742606
section Manual + Automatic
This PR (3986) (7.651M) : 0, 7650730
master (7.736M) : 0, 7735510
section Version Conflict
master (6.956M) : 0, 6956437
gantt
title Throughput Linux arm64 (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (3986) (9.576M) : 0, 9576268
master (9.472M) : 0, 9472029
benchmarks/2.9.0 (9.705M) : 0, 9704781
section Automatic
This PR (3986) (6.876M) : 0, 6875825
master (6.680M) : 0, 6679764
section Trace stats
master (6.894M) : 0, 6894147
section Manual
This PR (3986) (8.639M) : 0, 8638622
master (8.600M) : 0, 8600389
section Manual + Automatic
This PR (3986) (6.535M) : 0, 6535370
master (6.525M) : 0, 6524620
section Version Conflict
master (5.872M) : 0, 5872057
gantt
title Throughput Windows x64 (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (3986) (9.567M) : 0, 9566653
master (10.045M) : 0, 10044623
benchmarks/2.29.0 (9.984M) : 0, 9984467
benchmarks/2.9.0 (9.827M) : 0, 9827121
section Automatic
This PR (3986) (6.929M) : 0, 6929444
master (6.966M) : 0, 6966417
benchmarks/2.29.0 (7.308M) : 0, 7308052
benchmarks/2.9.0 (7.246M) : 0, 7246397
section Trace stats
master (6.870M) : 0, 6869583
benchmarks/2.29.0 (7.178M) : 0, 7177618
section Manual
This PR (3986) (8.629M) : 0, 8628700
master (8.561M) : 0, 8561162
benchmarks/2.29.0 (8.782M) : 0, 8781971
section Manual + Automatic
This PR (3986) (6.812M) : 0, 6812393
master (6.853M) : 0, 6853010
benchmarks/2.29.0 (7.020M) : 0, 7019745
section Version Conflict
master (6.037M) : 0, 6036526
benchmarks/2.29.0 (6.225M) : 0, 6224998
gantt
title Throughput Linux x64 (ASM) (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (3986) (7.595M) : 0, 7595273
master (7.441M) : 0, 7441390
benchmarks/2.29.0 (7.542M) : 0, 7542426
benchmarks/2.9.0 (7.748M) : 0, 7748029
section No attack
This PR (3986) (2.193M) : 0, 2193090
master (2.145M) : 0, 2145382
benchmarks/2.29.0 (2.187M) : 0, 2187214
benchmarks/2.9.0 (3.274M) : 0, 3273699
section Attack
This PR (3986) (1.860M) : 0, 1859648
master (1.814M) : 0, 1813658
benchmarks/2.29.0 (1.860M) : 0, 1860237
benchmarks/2.9.0 (2.598M) : 0, 2597950
section Blocking
This PR (3986) (3.754M) : 0, 3754185
master (3.671M) : 0, 3671287
benchmarks/2.29.0 (3.254M) : 0, 3254362
|
Summary of changes
TargetPlatform
enum to replaceMSBuildTargetPlatform
ForceWindowsArm64
boolean with aPlatformRequirement
enumReason for change
Introduce new
TargetPlatform
enum to replaceMSBuildTargetPlatform
The existing MSBuildTargetPlatform is annoyingly limiting
arm64
,arm64ec
)BuildTracerHome -TargetPlatform "arm64"
)Switching to the enum solves these, but we stick to the same naming to make it easier to revert back if support is added, and to interoperate with other built-in Nuke bits
Replace
ForceWindowsArm64
boolean with aPlatformRequirement
enumSo I can add
Single
so we can only build the platform we're interested in if we wantAdd a new arm64 build stage.
We could add this to the existing windows build stage, but that significantly slows down the build, and isn't worth it while this isn't a supported platform
Add a new azure VMSS that includes the arm64 tooling
I updated the other VMSS scale set so as to not break the main pipeline in case of issuesI tried to update all the stages to use the new VMSS, but for some reason it made the tests really flaky, so currently We're only using the new VMSS for the arm64 build stage...
Test coverage
None - we're not testing any of this yet
Other details
Known existing limitations: