perf: use rustc-hash in more places #215
No reviewers
Labels
No labels
Compat/Breaking
Kind
Bad merge
Kind
Bug
Kind
Documentation
Kind
Enhancement
Kind
Feature
Kind
New language
Kind
Security
Kind
Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: mergiraf/mergiraf#215
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "ada4a/mergiraf:moar_fxhash"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
I made a flamegraph of integration tests, and noticed that a non-trivial amount of time was spent in
Changeset::add
. Digging deeper, it turned out the majority of that had to do withMultiMap
, because of all the hashing it does. So I took inspiration from #40 and replaced its internalHashMap
s' hashers with rustc-hash, which indeed reduced the amount of time spent. After that, a couple more bottlenecks became apparent, and I solved them using the same method.I was testing this with the currently slowest integration test,
java/working/move_and_modify_conflict
, and after all the changes, its runtime went from 0.5s down to 0.4s -- not bad for a simple change like this! The runtime of the whole integration test suite has a greater variance, so it's hard to draw any definitive conclusions from it