apache / apache/datafusion

Make benchmark binaries (like tpch) compile faster

Open
#13,277 4 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
9.3k
Forks
2.4k
Avg merge
3d 7h
Merged PRs (30d)
344

Description

### Is your feature request related to a problem or challenge?

I found benchmark binaries takes a lot of time to compile, and most time is spent on compiling the binary itself.

I profiled the compiling time using:
```sh
# under benchmark/
cargo build --release --timings --bin tpch
```
On my m1 pro MacBook, the report shows 2 minutes is spent compiling dependencies including `datafusion` crate, and 4 minutes is spent on compiling a single `tpch` binary. For incremental builds, the later 4 minutes can't be avoided.
As a reference, `datafusion-cli` binary only took 10 sec to build on my machine.

This seems unusual, and I'm wondering is it possible to make it compile faster.

### Describe the solution you'd like

_No response_

### Describe alternatives you've considered

_No response_

### Additional context

_No response_

Contributor guide

Open the contributing guide

Research direction

Start under benchmark/ by running `cargo build --release --timings --bin tpch` and comparing its report with the `datafusion-cli` build time described in the issue. Trace why the tpch binary spends several minutes compiling and determine a concrete change that reduces that time, then verify the improvement with the same timing command.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system, performance
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.