refactor(userspace/libsinsp): improve performance of endswith filter operator #1796
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.
What type of PR is this?
/kind cleanup
Any specific area of the project related to this PR?
/area libsinsp
Does this PR require a change in the driver versions?
What this PR does / why we need it:
Doing some benchmarks, I noticed that the
endswith
operator is usually one of the least performing one we support because the current implementation may involve occasional allocation and string copies due to aconst char*
toconst std::string&
conversion. If used extensively in a filter or in Falco rules, that can have noticeable performance and memory impact.Which issue(s) this PR fixes:
Special notes for your reviewer:
/milestone 0.16.0
I think this should be something to consider for the upcoming release, as quite minimal but useful. Will let the release managers decide.
Does this PR introduce a user-facing change?: