-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
[Perf][Mono] Regression on Serailizer Benchmarks Changes at 5/20/2022 2:58:35 PM #70219
Comments
Related to one of these two: 8d4a724...810a7f9 |
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsRun Information
Regressions in MicroBenchmarks.Serializers.Json_FromStream<Location>
Reprogit clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'MicroBenchmarks.Serializers.Json_FromStream<Location>*' PayloadsHistogramMicroBenchmarks.Serializers.Json_FromStream<Location>.DataContractJsonSerializer_
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository
Regressions in MicroBenchmarks.Serializers.Xml_FromStream<LoginViewModel>
Reprogit clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'MicroBenchmarks.Serializers.Xml_FromStream<LoginViewModel>*' PayloadsHistogramMicroBenchmarks.Serializers.Xml_FromStream<LoginViewModel>.DataContractSerializer_
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in MicroBenchmarks.Serializers.Json_FromStream<CollectionsOfPrimitives>
Reprogit clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'MicroBenchmarks.Serializers.Json_FromStream<CollectionsOfPrimitives>*' PayloadsHistogramMicroBenchmarks.Serializers.Json_FromStream<CollectionsOfPrimitives>.DataContractJsonSerializer_
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in MicroBenchmarks.Serializers.Json_FromStream<LoginViewModel>
Reprogit clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'MicroBenchmarks.Serializers.Json_FromStream<LoginViewModel>*' PayloadsHistogramMicroBenchmarks.Serializers.Json_FromStream<LoginViewModel>.DataContractJsonSerializer_
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in MicroBenchmarks.Serializers.Xml_FromStream<CollectionsOfPrimitives>
Reprogit clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'MicroBenchmarks.Serializers.Xml_FromStream<CollectionsOfPrimitives>*' PayloadsHistogramMicroBenchmarks.Serializers.Xml_FromStream<CollectionsOfPrimitives>.DataContractSerializer_
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in MicroBenchmarks.Serializers.Xml_FromStream<SimpleStructWithProperties>
Reprogit clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'MicroBenchmarks.Serializers.Xml_FromStream<SimpleStructWithProperties>*' PayloadsHistogramMicroBenchmarks.Serializers.Xml_FromStream<SimpleStructWithProperties>.DataContractSerializer_
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in MicroBenchmarks.Serializers.Xml_FromStream<XmlElement>
Reprogit clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'MicroBenchmarks.Serializers.Xml_FromStream<XmlElement>*' PayloadsHistogramMicroBenchmarks.Serializers.Xml_FromStream<XmlElement>.DataContractSerializer_
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in MicroBenchmarks.Serializers.Json_FromStream<MyEventsListerViewModel>
Reprogit clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'MicroBenchmarks.Serializers.Json_FromStream<MyEventsListerViewModel>*' PayloadsHistogramMicroBenchmarks.Serializers.Json_FromStream<MyEventsListerViewModel>.DataContractJsonSerializer_
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in MicroBenchmarks.Serializers.Json_FromStream<IndexViewModel>
Reprogit clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'MicroBenchmarks.Serializers.Json_FromStream<IndexViewModel>*' PayloadsHistogramMicroBenchmarks.Serializers.Json_FromStream<IndexViewModel>.DataContractJsonSerializer_
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in MicroBenchmarks.Serializers.Xml_FromStream<ClassImplementingIXmlSerialiable>
Reprogit clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'MicroBenchmarks.Serializers.Xml_FromStream<ClassImplementingIXmlSerialiable>*' PayloadsHistogramMicroBenchmarks.Serializers.Xml_FromStream<ClassImplementingIXmlSerialiable>.DataContractSerializer_
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in MicroBenchmarks.Serializers.Xml_FromStream<IndexViewModel>
Reprogit clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'MicroBenchmarks.Serializers.Xml_FromStream<IndexViewModel>*' PayloadsHistogramMicroBenchmarks.Serializers.Xml_FromStream<IndexViewModel>.DataContractSerializer_
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in MicroBenchmarks.Serializers.Xml_FromStream<MyEventsListerViewModel>
Reprogit clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'MicroBenchmarks.Serializers.Xml_FromStream<MyEventsListerViewModel>*' PayloadsHistogramMicroBenchmarks.Serializers.Xml_FromStream<MyEventsListerViewModel>.DataContractSerializer_
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in MicroBenchmarks.Serializers.Xml_FromStream<Location>
Reprogit clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'MicroBenchmarks.Serializers.Xml_FromStream<Location>*' PayloadsHistogramMicroBenchmarks.Serializers.Xml_FromStream<Location>.DataContractSerializer_
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository
|
Looks like one of these changes: 8d4a724...810a7f9 |
@pavelsavara, I went through the changes in the diff and I think these regressions maybe caused by your changes in #64845 -- please investigate. |
cc @radical can help provide instructions to run locally. |
I see the regression here in this range 8d4a724...810a7f9 so I suspect it is #69213 causing the problem. A very quick glance at that pr makes me think it might be because of the use of Reverse there which is a known regression #68667 but that is just a guess. |
cc @AaronRobinsonMSFT is it possible to investigate. |
@SamMonoRT That change introduced a new marshalling type, that is all. No one in the .NET runtime repo, that I know of, is using the new @lewing What Reverse call in that PR are you referring to? |
Oh, in the NativeExport/Strings.cs? If so, that is a test and not a product change. |
Yes, I see that now. I did try to be clear I had only glanced at the pr 😬, sorry. The range I see from https://pvscmdupload.blob.core.windows.net/reports/allTestHistory/refs/heads/main_x64_ubuntu%2018.04_CompliationMode=wasm_RunKind=micro/MicroBenchmarks.Serializers.Xml_FromStream(MyEventsListerViewModel).DataContractSerializer_.html that regressed on the 20th is just those two changes though. |
No worries. Always happy to help investigate performance regressions. |
Is this just on WASM? Do we have special "knowledge" of Stream.Read in WASM that makes it faster? I know I've seen things in the past where certain library APIs were optimized specifically for WASM. If that is the case, maybe the new ReadAtLeast and ReadAll need to be optimized as well? For CoreCLR, my understanding is that the fix brought it back to baseline on all supported architectures. |
It does appear to be wasm specific but I don't think there is anything special going on for wasm in this case. Which streams types are being used in this test? |
There was a stretch of failed runs over the period where the fix landed so it is entirely possible your change handled the regression and we picked up a different regression during that time. Without better granularity we'd need to bisect |
There is at least one wasm regression in that range and main is fairly close to the previous baseline once that was fixed so I'm ok with considering this closed |
Run Information
Regressions in MicroBenchmarks.Serializers.Json_FromStream<Location>
Test Report
Repro
Payloads
Baseline
Compare
Histogram
MicroBenchmarks.Serializers.Json_FromStream<Location>.DataContractJsonSerializer_
Description of detection logic
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Regressions in MicroBenchmarks.Serializers.Xml_FromStream<LoginViewModel>
Test Report
Repro
Payloads
Baseline
Compare
Histogram
MicroBenchmarks.Serializers.Xml_FromStream<LoginViewModel>.DataContractSerializer_
Description of detection logic
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in MicroBenchmarks.Serializers.Json_FromStream<CollectionsOfPrimitives>
Test Report
Repro
Payloads
Baseline
Compare
Histogram
MicroBenchmarks.Serializers.Json_FromStream<CollectionsOfPrimitives>.DataContractJsonSerializer_
Description of detection logic
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in MicroBenchmarks.Serializers.Json_FromStream<LoginViewModel>
Test Report
Repro
Payloads
Baseline
Compare
Histogram
MicroBenchmarks.Serializers.Json_FromStream<LoginViewModel>.DataContractJsonSerializer_
Description of detection logic
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in MicroBenchmarks.Serializers.Xml_FromStream<CollectionsOfPrimitives>
Test Report
Repro
Payloads
Baseline
Compare
Histogram
MicroBenchmarks.Serializers.Xml_FromStream<CollectionsOfPrimitives>.DataContractSerializer_
Description of detection logic
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in MicroBenchmarks.Serializers.Xml_FromStream<SimpleStructWithProperties>
Test Report
Repro
Payloads
Baseline
Compare
Histogram
MicroBenchmarks.Serializers.Xml_FromStream<SimpleStructWithProperties>.DataContractSerializer_
Description of detection logic
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in MicroBenchmarks.Serializers.Xml_FromStream<XmlElement>
Test Report
Repro
Payloads
Baseline
Compare
Histogram
MicroBenchmarks.Serializers.Xml_FromStream<XmlElement>.DataContractSerializer_
Description of detection logic
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in MicroBenchmarks.Serializers.Json_FromStream<MyEventsListerViewModel>
Test Report
Repro
Payloads
Baseline
Compare
Histogram
MicroBenchmarks.Serializers.Json_FromStream<MyEventsListerViewModel>.DataContractJsonSerializer_
Description of detection logic
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in MicroBenchmarks.Serializers.Json_FromStream<IndexViewModel>
Test Report
Repro
Payloads
Baseline
Compare
Histogram
MicroBenchmarks.Serializers.Json_FromStream<IndexViewModel>.DataContractJsonSerializer_
Description of detection logic
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in MicroBenchmarks.Serializers.Xml_FromStream<ClassImplementingIXmlSerialiable>
Test Report
Repro
Payloads
Baseline
Compare
Histogram
MicroBenchmarks.Serializers.Xml_FromStream<ClassImplementingIXmlSerialiable>.DataContractSerializer_
Description of detection logic
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in MicroBenchmarks.Serializers.Xml_FromStream<IndexViewModel>
Test Report
Repro
Payloads
Baseline
Compare
Histogram
MicroBenchmarks.Serializers.Xml_FromStream<IndexViewModel>.DataContractSerializer_
Description of detection logic
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in MicroBenchmarks.Serializers.Xml_FromStream<MyEventsListerViewModel>
Test Report
Repro
Payloads
Baseline
Compare
Histogram
MicroBenchmarks.Serializers.Xml_FromStream<MyEventsListerViewModel>.DataContractSerializer_
Description of detection logic
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in MicroBenchmarks.Serializers.Xml_FromStream<Location>
Test Report
Repro
Payloads
Baseline
Compare
Histogram
MicroBenchmarks.Serializers.Xml_FromStream<Location>.DataContractSerializer_
Description of detection logic
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
The text was updated successfully, but these errors were encountered: