Closed performanceautofiler[bot] closed 2 years ago
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.
Most likely caused by https://github.com/dotnet/runtime/pull/65709. @SingleAccretion
That was an almost regression-less change, I was hoping for some improvements :).
In any case, will take a look.
@kunalspathak This was only seen on ARM64, correct?
That's correct. https://pvscmdupload.blob.core.windows.net/reports/allTestHistory%2frefs%2fheads%2fmain_x64_ubuntu%2018.04%2fSystem.Collections.ContainsTrue(String).Span(Size%3a%20512).html and https://pvscmdupload.blob.core.windows.net/reports/allTestHistory%2frefs%2fheads%2fmain_x64_Windows%2010.0.18362%2fSystem.Collections.ContainsTrue(String).Span(Size%3a%20512).html are charts from x64 and don't see regression from your change.
Alternative candidate is https://github.com/dotnet/runtime/pull/65561 (maybe it affected code layout in the jitted heap somehow - no idea)
Initial results:
1) Diffing the codegen that the altjit has for the call stack in the benchmark does not yield anything. Notably, the altjit doesn't use vector instructions for the SpanHelpers.SequenceEquals
workhorse method.
2) Diffing the R2Red SpanHelpers.SequenceEquals
from the provided baseline/diff payloads does not yield anything either. In fact, diffing the R2Red code for CoreLib (or at least the portion of it that R2RDump managed to write out before crashing...) doesn't yield anything, which is quite suspicious.
Further investigation will require an ARM64 device (I do not have one) to benchmark on, so will take some time...
Tagging subscribers to this area: @dotnet/area-system-collections See info in area-owners.md if you want to be subscribed.
Author: | performanceautofiler[bot] |
---|---|
Assignees: | SingleAccretion |
Labels: | `area-System.Collections`, `tenet-performance`, `tenet-performance-benchmarks`, `untriaged`, `refs/heads/main`, `ubuntu 18.04`, `Regression`, `RunKind=micro`, `CoreClr`, `arm64` |
Milestone: | - |
Tagging subscribers to this area: @JulieLeeMSFT See info in area-owners.md if you want to be subscribed.
Author: | performanceautofiler[bot] |
---|---|
Assignees: | SingleAccretion |
Labels: | `tenet-performance`, `tenet-performance-benchmarks`, `area-CodeGen-coreclr`, `untriaged`, `refs/heads/main`, `ubuntu 18.04`, `Regression`, `RunKind=micro`, `CoreClr`, `arm64` |
Milestone: | - |
So, in the time since since the regression, the benchmark, it seems, has become bimodal:
Given that, and the fact that I did not see invariant indirections in the call stacks of the benchmark that could have impacted the results, I think it is unlikely that #65709 has affected the performance here in an actionable (for me) way.
Right, I think we can close this one
@SingleAccretion sorry for wasting your time
Run Information
Regressions in System.Collections.ContainsTrue<String>
Test Report
Repro