Repository navigation
[Perf] Regression in Xml_ToStream Serializers #56016
Copy link
Copy link
Closed
Labels
arch-x64os-windowstenet-performancePerformance related issuePerformance related issuetenet-performance-benchmarksIssue from performance benchmarkIssue from performance benchmarkuntriagedNew issue has not been triaged by the area ownerNew issue has not been triaged by the area owner
Description
Run Information
| Architecture | x64 |
|---|---|
| OS | Windows 10.0.18362 |
| Baseline | 71d0d2b275efa091f235c569f01869f39bfb7638 |
| Compare | e983168f871dcba090ff6ec08c0d2c7d4353fb8e |
| Diff | Diff |
Regressions in MicroBenchmarks.Serializers.Xml_ToStream<MyEventsListerViewModel>
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio | Baseline ETL | Compare ETL |
|---|---|---|---|---|---|---|---|---|---|---|
| XmlSerializer_ - Duration of single invocation | 392.35 μs | 491.84 μs | 1.25 | 0.46 | False |
Historical Data in Reporting System
Repro
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'MicroBenchmarks.Serializers.Xml_ToStream<MyEventsListerViewModel>*'Details
Payloads
Histogram
MicroBenchmarks.Serializers.Xml_ToStream<MyEventsListerViewModel>.XmlSerializer_
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
| Architecture | x64 |
|---|---|
| OS | Windows 10.0.18362 |
| Baseline | 71d0d2b275efa091f235c569f01869f39bfb7638 |
| Compare | e983168f871dcba090ff6ec08c0d2c7d4353fb8e |
| Diff | Diff |
Regressions in MicroBenchmarks.Serializers.Xml_ToStream<IndexViewModel>
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio | Baseline ETL | Compare ETL |
|---|---|---|---|---|---|---|---|---|---|---|
| XmlSerializer_ - Duration of single invocation | 40.90 μs | 49.20 μs | 1.20 | 0.13 | False |
Historical Data in Reporting System
Repro
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'MicroBenchmarks.Serializers.Xml_ToStream<IndexViewModel>*'Details
Payloads
Histogram
MicroBenchmarks.Serializers.Xml_ToStream<IndexViewModel>.XmlSerializer_
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
arch-x64os-windowstenet-performancePerformance related issuePerformance related issuetenet-performance-benchmarksIssue from performance benchmarkIssue from performance benchmarkuntriagedNew issue has not been triaged by the area ownerNew issue has not been triaged by the area owner
_1.png)
_1.png)
Activity
DrewScoggins commentedon Jul 20, 2021
Seems related to #55101
DrewScoggins commentedon Jul 20, 2021
Improvement:
Run Information
Improvemnts in MicroBenchmarks.Serializers.Xml_FromStream<MyEventsListerViewModel>
Historical Data in Reporting System
Repro
Details
Payloads
Baseline
Compare
Histogram
MicroBenchmarks.Serializers.Xml_FromStream<MyEventsListerViewModel>.XmlSerializer_
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Improvemnts in MicroBenchmarks.Serializers.Xml_FromStream<IndexViewModel>
Historical Data in Reporting System
Repro
Details
Payloads
Baseline
Compare
Histogram
MicroBenchmarks.Serializers.Xml_FromStream<IndexViewModel>.XmlSerializer_
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
mconnew commentedon Jul 20, 2021
@DrewScoggins, #55101 wouldn't have caused a regression unless the types being serialized contain DateTimeOffset properties. If that's the case, then the regression is okay as we're doing more work as we're now actually serializing DateTimeOffset now. If there's no DateTimeOffset properties involved, then the problem was somewhere else.
DrewScoggins commentedon Jul 20, 2021
OK, those types do have DateTimeOffset. Before #55101 we were not doing the serialization at all, and now we are? If that is the case then seems like a regression would be expected.
mconnew commentedon Jul 20, 2021
Yes, that is exactly the case. Previously it would serialize as an empty XML element. Now it will output an XML format date time, and will deserialize it too.
stephentoub commentedon Jul 21, 2021
Closing as expected / by-design. Thanks.