Performance: `min { column } / max { column }` up to 5× slower than direct column ops `column.min/max()`
- Dominant language
- Kotlin
- Stars
- 1.1k
- Forks
- 83
- Avg merge
- 4d 12h
- Merged PRs (30d)
- 30
Description
I tried running a profiler on somewhat big dataset:
min { column } takes different code path because there could be multiple columns selected (aggregateAllColumns vs aggregateSingleColumn). Ideally, see why it's noticeably slower and try to remove the overhead.
Another approach - optimize min { } when there's actually only 1 column, call aggregateSingle directly on it instead of slower path
Contributor guide
Research direction
Start by locating the implementations of aggregateAllColumns and aggregateSingleColumn used by min { column }, then compare that path with column.min/max() using a representative large dataset and the profiler evidence. Done means identifying and reducing the single-column overhead, with measurements showing min { column } is no longer substantially slower than the direct column operations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin
- Domain
- data, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100