Kotlin / Kotlin/dataframe

Performance: `min { column } / max { column }` up to 5× slower than direct column ops `column.min/max()`

Open
#1,693 1 comment 1 reaction 0 assignees View on GitHub
bug performance
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:
Image

Image

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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.