Improve filter performance some more with `fold` implementations
- Dominant language
- Rust
- Stars
- 3.6k
- Forks
- 1.3k
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 169
Description
**Is your feature request related to a problem or challenge? Please describe what you are trying to do.**
As shown in https://github.com/apache/arrow-rs/pull/9284 we can optimize filter kernels (and others that use the iterators) a bit more by implementing `fold` for the used iterators. This will generate faster code than `iter` as it can skip redundant checks and better inline.
**Describe the solution you'd like**
* Implement `fold` for the different iterators
* use `.iter().for_each(` in consumers (e.g. `from_trusted_len_iterator`, etc.) to use it
**Describe alternatives you've considered**
**Additional context**
Contributor guide
Research direction
Review the filter kernels and iterator implementations discussed in PR 9284, then inspect consumers such as from_trusted_len_iterator. Confirm that the relevant iterators implement fold and that consumers use .iter().for_each; compare the resulting behavior and performance with the optimization described in the issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- performance
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100