You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Perf] Windows 10.0.25094/arm64 : Regressions in MicroBenchmarks.Serializers.Xml_ToStream<MyEventsListerViewModel> on 8/13/2022 7:28:42 AM #74439
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because we could not find enough baseline builds for window checking.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 8/13/2022 2:59:44 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsRegressionStdDev: Marked as regression because -13.301195798386802 (T) = (0 -780924.1216518995) / Math.Sqrt((1816446026.8913484 / (16)) + (2945738217.569549 / (26))) is less than -2.0210753903043583 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (16) + (26) - 2, .025) and -0.3450330993912639 = (580598.4417820876 - 780924.1216518995) / 580598.4417820876 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
changed the title [-][Perf] Windows 10.0.25094/arm64 : Regression on 8/13/2022 7:28:42 AM[/-][+][Perf] Windows 10.0.25094/arm64 : Regressions in MicroBenchmarks.Serializers.Xml_ToStream<MyEventsListerViewModel> on 8/13/2022 7:28:42 AM[/+]on Aug 23, 2022
Right. So this is a bit of a minor saga ongoing here. In 6.0 we switched XmlSerializer from using XmlTextReader/Writer which is a little free-and-loose with Xml rules to use the more compliant XmlReader/Writer.Create() factories. This gets more correctness in XmlSerializer... but XmlTextWriter was faster. There were perf regressions with this change. (See #56014 and #56352)
Before 6.0 shipped, we got this performance gap mostly closed by removing indentation from the applied settings for our new XmlWriter. See #56524.
However, we have received a lot of blowback for not having human-readable Xml output. (See #63585 and #64885) So in 7.0, we have decided to re-introduce indenting. (See #73731) This regression is expected and is something we will live with. We do hope to re-vamp XmlSerializer in 8.0 to work with different internal mechanisms and be much faster.
But for 7.0 (and 6.0 if we decide to backport this fix) customers who need every last bit of performance can supply their own XmlWriter when serializing.
Activity
3 remaining items
[-][Perf] Windows 10.0.25094/arm64 : Regression on 8/13/2022 7:28:42 AM[/-][+][Perf] Windows 10.0.25094/arm64 : Regressions in MicroBenchmarks.Serializers.Xml_ToStream<MyEventsListerViewModel> on 8/13/2022 7:28:42 AM[/+]DrewScoggins commentedon Aug 23, 2022
Seems related to this batch of commit:
#73730
#73731
#73827
#73729
@StephenBonikowsky
DrewScoggins commentedon Aug 23, 2022
Also on Ubuntu dotnet/perf-autofiling-issues#7362
StephenMolloy commentedon Sep 2, 2022
Right. So this is a bit of a minor saga ongoing here. In 6.0 we switched XmlSerializer from using XmlTextReader/Writer which is a little free-and-loose with Xml rules to use the more compliant XmlReader/Writer.Create() factories. This gets more correctness in XmlSerializer... but XmlTextWriter was faster. There were perf regressions with this change. (See #56014 and #56352)
Before 6.0 shipped, we got this performance gap mostly closed by removing indentation from the applied settings for our new XmlWriter. See #56524.
However, we have received a lot of blowback for not having human-readable Xml output. (See #63585 and #64885) So in 7.0, we have decided to re-introduce indenting. (See #73731) This regression is expected and is something we will live with. We do hope to re-vamp XmlSerializer in 8.0 to work with different internal mechanisms and be much faster.
But for 7.0 (and 6.0 if we decide to backport this fix) customers who need every last bit of performance can supply their own XmlWriter when serializing.