feat: Further improve performance of stack function #1847
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.
I'm currently writing a blog post about the optimisations in my previous PR #1281. In the process of writing this blog post, I have identified several further minor performance improvements. During testing on a dataset of 6,000 items, these reduced time spent in the stacking function by an average of 15%.
This PR also partially exists to salvage my ego, because my benchmarks revealed that the fancy algorithm I wrote in #1281 actually performs worse (in some circumstances) than a naive algorithm I used for comparison. With the changes in this PR, the algorithm I worked hard on now confidently outperforms the naive algorithm in all circumstances I could think to test.