Improve performance of the index selector #493
Merged
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.
Short description
Improved the access patterns for array index selectors.
First, member and array transitions are now in separate smallvec arrays, so we can always look only at the relevant array transitions.
Second, properties like "has array transition" or "can accept via array transition" are now cached during
minimize
asStateAttributes
.Overall on chirop@lille this gives from 7% to 12% thpt increase on most of the
main
benchmark.See full bench report at the bottom.
Issue
Resolves: #138
Rel: #151
Checklist
All of these should be ticked off before you submit the PR.
just verify
locally and it succeeded.Benchmark report
There is a weird regression on
./data/twitter/twitter.json_user_mentions_indices/rsonpath_mmap_count
which should be investigated as part of #151. However, the change looks reasonably beneficial on all other benches.