-
Notifications
You must be signed in to change notification settings - Fork 107
Perf: Optimized bool take #5701
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Codecov Report❌ Patch coverage is
☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
CodSpeed Performance ReportMerging #5701 will not alter performanceComparing Summary
Benchmarks breakdown
Footnotes
|
2d06cdd to
1ebacee
Compare
gatesn
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No chance without a benchmark 😅
1ebacee to
edd1e34
Compare
|
locally: So basically no overhead to check for this optimization and at a minimum 2x faster if we do it (sometimes it is 10x faster) |
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
fc0d937 to
622991b
Compare
Adds an optimization for
BoolVector::takewhich is similar to the optimization we have forBoolArray's canonicalize function, but does an additional check for zero or onefalses (instead of just zero or onetrues). That code is located at https://github.com/vortex-data/vortex/blob/develop/vortex-array/src/arrays/dict/vtable/canonical.rs.The difference here is that I use a heuristic check on the default take implementation on
BoolVector(instead of only use this optimization for dictionary decompression) because I don't think there is any reason not to utilize this in general.I still need to add some benchmarks.