Add ContainsAny{Except} path to SearchValues#96924
Merged
MihaZupan merged 1 commit intodotnet:mainfrom Jan 19, 2024
Merged
Conversation
|
Tagging subscribers to this area: @dotnet/area-system-buffers Issue DetailsFollowup after #87621 to add dedicated I tried to avoid code duplication between #96588 is renaming some files so if/after that is merged, we can wire up
Benchmark codepublic class SearchValuesContainsAny
{
private static readonly SearchValues<char> s_values = SearchValues.Create("ABCDabcd1234");
private string _text = null!;
private string _textExcept = null!;
[Params(false, true)]
public bool Match;
[Params(16)]
public int Length;
[GlobalSetup]
public void Setup()
{
var text = new string('\n', Length).ToCharArray();
var textExcept = new string('a', Length).ToCharArray();
if (Match)
{
text[0] = 'a';
textExcept[0] = '\n';
}
_text = new string(text);
_textExcept = new string(textExcept);
}
[Benchmark]
public bool ContainsAny() => _text.AsSpan().ContainsAny(s_values);
[Benchmark]
public bool ContainsAnyExcept() => _textExcept.AsSpan().ContainsAnyExcept(s_values);
}
|
This was referenced Jan 13, 2024
Closed
7908b17 to
c94005f
Compare
stephentoub
approved these changes
Jan 18, 2024
c94005f to
7bccebe
Compare
This was referenced Jan 18, 2024
tmds
pushed a commit
to tmds/runtime
that referenced
this pull request
Jan 23, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Followup after #87621 to add dedicated
ContainsAny{Except}paths forSearchValues.This PR adds such logic for
SearchValuesthat go throughIndexOfAnyAsciiSearcher.I tried to avoid code duplication between
IndexOfAnyandContainsAnyby abusing generics some more. Don't know if that could lead to any downsides.#96588 is renaming some files so if/after that is merged, we can wire up
ContainsAny{Except}for single-valueSearchValuesto call intoContainshelpers as well.Benchmark code