Closed naricc closed 2 years ago
The second change did change behavior by allowing more interpreter->aot transitions. In some cases, that might improve performance, in some cases it might decrease it. Not sure what to do here.
Tagging subscribers to 'arch-wasm': @lewing See info in area-owners.md if you want to be subscribed.
Author: | naricc |
---|---|
Assignees: | - |
Labels: | `arch-wasm`, `tenet-performance`, `untriaged`, `area-Codegen-AOT-mono`, `runtime-mono` |
Milestone: | - |
@vargaz If you say this is a worthwhile tradeoff, I can just close the issue. So long as its documented somewhere.
What do you think @SamMonoRT?
@naricc - What was the % improvement in other benchmarks, both interpreter-wasm and aot-wasm ones to justify the tradeoff ?
Would it be possible to rerun the benchmarks with latest master ?
@vargaz Yes, I can do that. They are actually run against the lastest master a few times a day on a regular cadence, so I can just look.
@SamMonoRT Let me dig into that; I should be able to search for improvement issues filed around this time to find out.
Is this planned for 7.0?
I believe all those have improved. We can close this issue. cc @naricc
Looking at the perf data, it seems like this specific spike has been resolved. There does seem to be some kind of other creep up word in these benchmarks that we might want to look at in the future, example: https://pvscmdupload.blob.core.windows.net/reports/allTestHistory%2frefs%2fheads%2fmain_x64_ubuntu%2018.04_CompliationMode%3dwasm_RunKind%3dmicro%2fSystem.Collections.AddGivenSize(Int32).Dictionary(Size%3a%20512).html
Something happened between January and March where we are missing data. But yeah, I think it is safe to close this.
Jan-Mar was when the perf builds were broken.
Based on the time frame, it seems likely to have been caused by one of these two changes: https://github.com/dotnet/runtime/compare/9e795c014b0be513c84f96427c544bae486bb101...e34c3953f8d69b06233c576bf2c2818d0ea0ebc3 @vargaz
Automated performance issue below.
Run Information
Regressions in System.Collections.IterateForEach<Int32>
Test Report
Repro
Run Information
Regressions in System.Linq.Tests.Perf_Enumerable
Test Report
Repro
Run Information
Regressions in System.Collections.Concurrent.IsEmpty<String>
Test Report
Repro
Run Information
Regressions in System.Collections.ContainsTrueComparer<Int32>
Test Report
Repro
Run Information
Regressions in System.Collections.IterateForEach<String>
Test Report
Repro
Run Information
Regressions in System.Collections.TryAddDefaultSize<String>
Test Report
Repro
Run Information
Regressions in System.Collections.AddGivenSize<Int32>
Test Report
Repro
Run Information
Regressions in System.Collections.Sort<BigStruct>
Test Report
Repro
Run Information
Regressions in System.Collections.Sort<Int32>
Test Report
Repro
Run Information
Regressions in System.Buffers.Text.Tests.Utf8FormatterTests
Test Report
Repro
Run Information
Regressions in System.Collections.Concurrent.IsEmpty<Int32>
Test Report
Repro
Run Information
Regressions in MicroBenchmarks.Serializers.Json_ToStream<IndexViewModel>
Test Report
Repro
Run Information
Regressions in System.Collections.CtorFromCollection<String>
Test Report
Repro
Run Information
Regressions in System.Collections.TryAddDefaultSize<Int32>
Test Report
Repro
Run Information
Regressions in System.Collections.Concurrent.Count<String>
Test Report
Repro
Run Information
Regressions in System.Collections.CtorFromCollection<Int32>
Test Report
Repro
Run Information
Regressions in System.Tests.Perf_String
Test Report
Repro