-
Notifications
You must be signed in to change notification settings - Fork 4k
ARROW-11624: [Rust] Move Arrow benchmarks to its own crate #9493
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
@@ Coverage Diff @@
## master #9493 +/- ##
=======================================
Coverage 82.12% 82.12%
=======================================
Files 235 235
Lines 54729 54729
=======================================
Hits 44944 44944
Misses 9785 9785
Continue to review full report at Codecov.
|
|
Doesn't this make it more difficult to develop? I usually need to run a benchmark multiple times during dev of e.g. a kernel, and now I need to have two vs code opened for this. I do not get the benefits either: doesn't the times that you refer to only relevant in the dev and in the first build? Running I think that the concern in the mailing list is not about dev dependencies but about non-dev dependencies. |
It is true that I was originally thinking about non-dev dependencies, though speeding up dev cycles itself is also a worthy goal. |
| memory-check = [] | ||
|
|
||
| [dev-dependencies] | ||
| criterion = "0.3" |
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.
I guess I was imagining something more like adding a
[features]
benches = ["criterion"]
So then if one wanted to have the benches built they could run a command like cargo bench --features benches or something
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.
Might be interesting to try out something like that out. It will keep the dev flow more similar to what we have now while reducing the compile times when you don't want to run any benchmarks.
@jorgecarleitao would something like this work for you?
|
I am just trying to understand how this reduces the dev cycle: maybe I am not using the correct flow. My flow atm on the arrow crate is (on a vs terminal opened on git checkout master
git checkout -b feature/A
# > remove all workspaces from `../Cargo.toml` since rust-analyzer builds all and I do not care about them.
# > change something
cargo fmt
cargo clippy
cargo test --lib
cargo bench --bench X
# repeat step until happy
# > commit
git checkout master
cargo bench --bench X
git checkout feature/A
cargo bench --bench X
# > copy bench resultsOpen PR with bench results and pray that other dependencies pass. If not, iterate on them. I am curious as to how others have been working here. |
|
@Dandandan what do you think we should do with this PR? Is it something we should work on getting in? Or should we park the discussion for now? I doubt this is going to improve any compile times when benchmarks are involved, but it will improve times for those PRs which don't need to rerun benchmarks |
|
@alamb let's park the discussion for now and see if there are other areas of improvement. I think it still could be a good idea to decrease compile / dev times, but the benchmarks are also quite central to the arrow crate. Maybe it makes more sense to do that it the DataFusion crate? Let's see |
|
Closing this PR for now |
…ject Same idea as #9493 but for examples in DataFusion FYI @alamb Clean + building with `cargo test`. Moving the micro benchmarks out of the crate is also another possibility. | | Old | New | | ------------- |:-------------:| -----:| | Nr dependencies | 309 | 249 | | build time(s) | 77 |68 | Closes #9494 from Dandandan/move_datafusion_examples Lead-authored-by: Heres, Daniel <danielheres@gmail.com> Co-authored-by: Daniël Heres <danielheres@gmail.com> Signed-off-by: Andrew Lamb <andrew@nerdnetworks.org>
…ject Same idea as apache/arrow#9493 but for examples in DataFusion FYI @alamb Clean + building with `cargo test`. Moving the micro benchmarks out of the crate is also another possibility. | | Old | New | | ------------- |:-------------:| -----:| | Nr dependencies | 309 | 249 | | build time(s) | 77 |68 | Closes #9494 from Dandandan/move_datafusion_examples Lead-authored-by: Heres, Daniel <danielheres@gmail.com> Co-authored-by: Daniël Heres <danielheres@gmail.com> Signed-off-by: Andrew Lamb <andrew@nerdnetworks.org>
To reduce the amount of dependencies in Arrow, this speeds up compile times, by removing the
criteriondependencies.On my machine time to build the crate with
cargo test: