-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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 -116%] System.Memory.ReadOnlySpan.IndexOfString (4) #37815
Comments
From @adamsitnik Looks like a regression. A bad one (OrdinalIgnoreCase shoud not be using ICU and should always be very fast). @GrabYourPitchforks |
I suspect this is related to the ICU work. We have managed optimizations for Do we know if this same regression exists when we opt back in to using NLS everywhere? It can be toggled via an environment variable or by using a runtimeconfig.json file, as shown at https://github.com/dotnet/runtime/blob/master/src/libraries/System.Globalization.Extensions/tests/NlsTests/runtimeconfig.template.json. |
I have updated the data to give more historical context. From looking at it I am fairly certain we would see these go away with the removal of ICU, as you can see that the test was quite flat and unregressed until that change went in. |
I've confirmed that this regression has been caused by the switch to ICU:
I am closing this issue and adding it to the list of all known ICU-related regressions: #40942 |
Run Information
Regressions in System.Memory.ReadOnlySpan
Historical Data in Reporting System
Repro
Histogram
System.Memory.ReadOnlySpan.IndexOfString(input: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", value: "x", comparisonType: OrdinalIgnoreCase)
System.Memory.ReadOnlySpan.IndexOfString(input: "StrIng", value: "string", comparisonType: OrdinalIgnoreCase)
System.Memory.ReadOnlySpan.IndexOfString(input: "Hello WorldbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbareallyreallylongHello WorldbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbareallyreallylongHello Worldbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbareallyreallylong!xyz", value: "w", comparisonType: OrdinalIgnoreCase)
System.Memory.ReadOnlySpan.IndexOfString(input: "More Test's", value: "Tests", comparisonType: OrdinalIgnoreCase)
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
The text was updated successfully, but these errors were encountered: