Update vendored System.Memory#8459
Update vendored System.Memory#8459andrewlock wants to merge 13 commits intoandrew/update-vendors-2from
Conversation
BenchmarksBenchmark execution time: 2026-04-16 14:22:23 Comparing candidate commit 3b42dd4 in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 27 metrics, 0 unstable metrics, 87 known flaky benchmarks.
|
Execution-Time Benchmarks Report ⏱️Execution-time results for samples comparing This PR (8459) and master. ✅ No regressions detected - check the details below Full Metrics ComparisonFakeDbCommand
HttpMessageHandler
Comparison explanationExecution-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 highlighted 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). Duration chartsFakeDbCommand (.NET Framework 4.8)gantt
title Execution time (ms) FakeDbCommand (.NET Framework 4.8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8459) - mean (72ms) : 69, 75
master - mean (71ms) : 69, 73
section Bailout
This PR (8459) - mean (76ms) : 74, 78
master - mean (76ms) : 73, 79
section CallTarget+Inlining+NGEN
This PR (8459) - mean (1,061ms) : 1022, 1100
master - mean (1,062ms) : 1019, 1105
FakeDbCommand (.NET Core 3.1)gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8459) - mean (112ms) : 109, 116
master - mean (112ms) : 109, 116
section Bailout
This PR (8459) - mean (113ms) : 110, 116
master - mean (114ms) : 112, 117
section CallTarget+Inlining+NGEN
This PR (8459) - mean (762ms) : 746, 778
master - mean (784ms) : 761, 807
FakeDbCommand (.NET 6)gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8459) - mean (99ms) : 95, 102
master - mean (100ms) : 96, 103
section Bailout
This PR (8459) - mean (99ms) : 97, 102
master - mean (100ms) : 97, 102
section CallTarget+Inlining+NGEN
This PR (8459) - mean (927ms) : 898, 955
master - mean (930ms) : 890, 971
FakeDbCommand (.NET 8)gantt
title Execution time (ms) FakeDbCommand (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8459) - mean (98ms) : 96, 101
master - mean (98ms) : 94, 102
section Bailout
This PR (8459) - mean (100ms) : 97, 103
master - mean (99ms) : 96, 103
section CallTarget+Inlining+NGEN
This PR (8459) - mean (811ms) : 777, 845
master - mean (819ms) : 780, 859
HttpMessageHandler (.NET Framework 4.8)gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8459) - mean (213ms) : 207, 219
master - mean (206ms) : 201, 211
section Bailout
This PR (8459) - mean (217ms) : 212, 222
master - mean (210ms) : 206, 213
section CallTarget+Inlining+NGEN
This PR (8459) - mean (1,241ms) : 1186, 1296
master - mean (1,207ms) : 1169, 1246
HttpMessageHandler (.NET Core 3.1)gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8459) - mean (309ms) : 302, 315
master - mean (297ms) : 289, 305
section Bailout
This PR (8459) - mean (307ms) : 302, 313
master - mean (299ms) : 293, 306
section CallTarget+Inlining+NGEN
This PR (8459) - mean (1,002ms) : 981, 1024
master - mean (1,002ms) : 964, 1040
HttpMessageHandler (.NET 6)gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8459) - mean (300ms) : 295, 305
master - mean (292ms) : 286, 297
section Bailout
This PR (8459) - mean (300ms) : 295, 306
master - mean (293ms) : 288, 297
section CallTarget+Inlining+NGEN
This PR (8459) - mean (1,181ms) : 1142, 1221
master - mean (1,167ms) : 1124, 1210
HttpMessageHandler (.NET 8)gantt
title Execution time (ms) HttpMessageHandler (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8459) - mean (299ms) : 294, 305
master - mean (289ms) : 283, 296
section Bailout
This PR (8459) - mean (299ms) : 293, 305
master - mean (290ms) : 284, 296
section CallTarget+Inlining+NGEN
This PR (8459) - mean (1,096ms) : 987, 1205
master - mean (1,067ms) : 971, 1162
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2cac866 to
7f66c52
Compare
00c728d to
b4b5712
Compare
…zed in vendored code)
b4b5712 to
58b049c
Compare
7f66c52 to
3b42dd4
Compare
Summary of changes
Reason for change
We want to update our vendored .NET library versions.
Implementation details
The updated vendoring is based on the public System.Memory nuget package, so is designed to be used with .NET Framework and .NET Standard, so makes the most sense to use IMO.
As this package also uses System.Buffers and System.Numerics.Vectors, vendored those pieces we need where appropriate.
Test coverage
This is the test, if it compiles and tests pass, we should be ok 🤞
Other details
https://datadoghq.atlassian.net/browse/APMLP-1207
Note that currently, there's a lot of
Utf8Formattercode that isn't used, and could be excluded, however, given that theoretically we could/should use this in the future. I'm torn whether to just leave it in, or whether to tear it out for now, and restore it if/when we want to use it later. Any thoughts?Part of a stack updating our vendored system code