Repository navigation
[Perf] Regressions in System.Globalization.Tetsts.StringSearch #50736
Copy link
Copy link
Closed
Labels
arch-x64area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIos-linuxLinux OS (any supported distro)Linux OS (any supported distro)tenet-performancePerformance related issuePerformance related issuetenet-performance-benchmarksIssue from performance benchmarkIssue from performance benchmark
Milestone
Description
Run Information
| Architecture | x64 |
|---|---|
| OS | ubuntu 18.04 |
| Baseline | ca1a5cf09bc2e286c24029f205d376831af1e383 |
| Compare | dc5c9099b2c4ebcc74f8f40a5de5c4733ac79bfa |
Regressions in System.Globalization.Tests.StringSearch
| Benchmark | Baseline | Test | Test/Base | Baseline IR | Compare IR | IR Ratio | Baseline ETL | Compare ETL |
|---|---|---|---|---|---|---|---|---|
| IndexOf_Word_NotFound | 507.56 ns | 598.57 ns | 1.18 | |||||
| IndexOf_Word_NotFound | 508.54 ns | 597.88 ns | 1.18 | |||||
| LastIndexOf_Word_NotFound | 503.82 ns | 599.36 ns | 1.19 | |||||
| IndexOf_Word_NotFound | 509.19 ns | 600.15 ns | 1.18 | |||||
| LastIndexOf_Word_NotFound | 502.60 ns | 599.06 ns | 1.19 | |||||
| LastIndexOf_Word_NotFound | 502.24 ns | 599.30 ns | 1.19 |
![graph]
Historical Data in Reporting System
Repro
git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Globalization.Tests.StringSearch*'Details
Payloads
Histogram
System.Globalization.Tests.StringSearch.IndexOf_Word_NotFound(Options: (en-US, None, False))
System.Globalization.Tests.StringSearch.IsPrefix_FirstHalf(Options: (, IgnoreCase, False))
System.Globalization.Tests.StringSearch.IndexOf_Word_NotFound(Options: (en-US, IgnoreNonSpace, False))
System.Globalization.Tests.StringSearch.LastIndexOf_Word_NotFound(Options: (en-US, IgnoreNonSpace, False))
System.Globalization.Tests.StringSearch.IndexOf_Word_NotFound(Options: (, None, False))
System.Globalization.Tests.StringSearch.LastIndexOf_Word_NotFound(Options: (en-US, None, False))
System.Globalization.Tests.StringSearch.LastIndexOf_Word_NotFound(Options: (, None, False))
System.Globalization.Tests.StringSearch.IsPrefix_FirstHalf(Options: (en-US, IgnoreCase, False))
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
arch-x64area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIos-linuxLinux OS (any supported distro)Linux OS (any supported distro)tenet-performancePerformance related issuePerformance related issuetenet-performance-benchmarksIssue from performance benchmarkIssue from performance benchmark






Activity
tarekgh commentedon Apr 5, 2021
@stephentoub
I have quickly scanned all commits between the baseline and the regression:
The only one looks related is 184a5b1. Is it expected to get some regression with this change?
stephentoub commentedon Apr 5, 2021
No, that should have zero impact.
stephentoub commentedon Apr 5, 2021
Is it possible there were updates to the machines in this timeframe, e.g. Windows Update patches that may have been applied? If you run the two versions of the repo again on the same machine, does it still manifest as a repeatable regression?
tarekgh commentedon Apr 5, 2021
Interesting, I am not seeing any other commit can be related at all.
This regression looks on Linux only. but I am not sure if these Linux machines get updated somehow.
@DrewScoggins is this something you can try?
CC @adamsitnik
DrewScoggins commentedon Apr 6, 2021
Yes, I can run these on the same machine. I will do that today and report back the numbers.
DrewScoggins commentedon Apr 6, 2021
So I ran these and did see the regression. I ran it for the other ones as well, but I am not posting them here because as you can see from the image I pasted below this regression went away with this change, #50633, from Andy. So I suspect this had something to do with the application of PGO data.
Baseline
Compare
tarekgh commentedon Apr 6, 2021
CC @AndyAyersMS to confirm this may be related PGO.
@DrewScoggins thanks for the info. Is this means we are currently not having the regression anymore? should we have seen any changes related to PGO that caused the problem and then @AndyAyersMS changes fixed it back?
AndyAyersMS commentedon Apr 6, 2021
Seems likely.
PGO data started appearing in FX assemblies on 3/19 with #49793 (first bump in the graphs up top) and that caused some regressions. I don't think we root-caused the second bump on 3/23 (IIRC there was no obvious commit).
The jit wasn't properly handling the PGO data in some cases; that's what lead to some of those 3/19 regressions. I partially fixed this in #50633. There is still more to fix.
stephentoub commentedon Apr 6, 2021
@DrewScoggins, were there other issues opened that were likely also the result of this?
tarekgh commentedon Jun 15, 2021
@AndyAyersMS I changed the label to codegen as we got a new issue #54165 which is regression in same test highly likely a codegen issue.
AndyAyersMS commentedon Jun 15, 2021
Ok, thanks. The regressions in the tests above were all resolved over time -- the one for #54165 still persists.
So I'm going to close this.