Skip match_empty
after failed to find a insert slot in group
#607
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.
Running benchmark on my local macbook pro(M1 Pro):
Before:
Before:
After:
Highlights:
Previously, each group would be matched twice(first by
find_insert_slot_in_group
, which finds empty or deleted slot in the group, and then again bymatch_empty
, which finds empty slot in the group) until a deleted slot was found in the table. The second match is clearly redundant.By removing the redundant check, we significantly improve the insertion speed and query speed in a newly created HashMap/HashSet.