-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Building project takes a *long* time (esp compilation time for datafusion
core crate)
#13814
Comments
install sccache and tell rust to use it
With the above two options I see a full build on my machine taking 100.8s (1m 40.8s). https://corrode.dev/blog/tips-for-faster-rust-compile-times/ |
This makes sense -- thank you @Omega359 However, I think it will not help CI where the use of such caching doesn't help (and since the intermediate rust files are so large trying to use cargo cache wasn't effective in the past when we tried) I would love to figure out how to break the datafusion core crate into smaller pieces / crates that can be compiled in parallel |
fwiw I tried to gather a bit more info with llvm-lines:
|
yes! and move around sqlparser dependency when doing so :) |
FWIW the only reliable mechanism I've found to measure this is to comment out modules and measure the impact on compilation time. Llvm-lines and cargo-bloat can be informative, but not all lines are created equal. This is especially true for code with complex lifetimes and/or async. Anything making extensive use of macros is likely a good place to start |
Is your feature request related to a problem or challenge?
Compiling the datafusion crate currently takes 40 seconds on my machine, far longer than any other crate
This slows down CI builds as well as my own local development workflow
For example, running
# start from clean checking rm -rf target cargo build --timings
Generates a chart as follows (attached here): carg-timings.zip
Describe the solution you'd like
I would like to speed up compilation somehow -- likely by decreasing the time required for datafusion-core
Describe alternatives you've considered
I think the first thing would be to figure out if possible what is taking up so much time when building the core crate
I suspect it has to do with listing table / some of the various file format support, but I don't have data to justify that
Additional context
No response
The text was updated successfully, but these errors were encountered: