-
Notifications
You must be signed in to change notification settings - Fork 350
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
Compile Times + Warp Types #5539
Labels
Comments
Yeah boxing would probably help. Can you experiment a little? |
PSeitz
added a commit
that referenced
this issue
Nov 5, 2024
box warp routes to avoid super heavy types. Performance impact should be okay, since these heavy types are not cache friendly. This reduces type complexity significantly, but some really long type chains remain. I've identified two, but they may be more 1. Boxed or chains 2. Response type chains We can replace the boxed or chains with a Vec, since they all contain the same box type now. Such a type doesn't seem to exist in warp yet. `cargo install --path .` Compile time before 4m49s Compile time now 4m14s Tool to list heavy functions: ` CARGO_PROFILE_RELEASE_LTO=fat cargo llvm-lines --release --bin quickwit > llvm_lines ` Size down from 32MB to 22MB addresses #5539
Merged
PSeitz
added a commit
that referenced
this issue
Nov 5, 2024
box warp routes to avoid super heavy types. Performance impact should be okay, since these heavy types are not cache friendly. This reduces type complexity significantly, but some really long type chains remain. I've identified two, but they may be more 1. Boxed or chains 2. Response type chains We can replace the boxed or chains with a Vec, since they all contain the same box type now. Such a type doesn't seem to exist in warp yet. `cargo install --path .` Compile time before 4m49s Compile time now 4m14s Tool to list heavy functions: ` CARGO_PROFILE_RELEASE_LTO=fat cargo llvm-lines --release --bin quickwit > llvm_lines ` Size down from 32MB to 22MB addresses #5539
PSeitz
added a commit
that referenced
this issue
Nov 5, 2024
box warp routes to avoid super heavy types. Performance impact should be okay, since these heavy types are not cache friendly. This reduces type complexity significantly, but some really long type chains remain. I've identified two, but they may be more 1. Boxed or chains 2. Response type chains We can replace the boxed or chains with a Vec, since they all contain the same box type now. Such a type doesn't seem to exist in warp yet. `cargo install --path .` Compile time before 4m49s Compile time now 4m14s Tool to list heavy functions: ` CARGO_PROFILE_RELEASE_LTO=fat cargo llvm-lines --release --bin quickwit > llvm_lines ` Size down from 32MB to 22MB addresses #5539
PSeitz
added a commit
that referenced
this issue
Nov 5, 2024
box warp routes to avoid super heavy types. Performance impact should be okay, since these heavy types are not cache friendly. This reduces type complexity significantly, but some really long type chains remain. I've identified two, but they may be more 1. Boxed or chains 2. Response type chains We can replace the boxed or chains with a Vec, since they all contain the same box type now. Such a type doesn't seem to exist in warp yet. `cargo install --path .` Compile time before 4m49s Compile time now 4m14s Tool to list heavy functions: ` CARGO_PROFILE_RELEASE_LTO=fat cargo llvm-lines --release --bin quickwit > llvm_lines ` Size down from 32MB to 22MB addresses #5539
PSeitz
added a commit
that referenced
this issue
Nov 5, 2024
box warp routes to avoid super heavy types. Performance impact should be okay, since these heavy types are not cache friendly. This reduces type complexity significantly, but some really long type chains remain. I've identified two, but they may be more 1. Boxed or chains 2. Response type chains We can replace the boxed or chains with a Vec, since they all contain the same box type now. Such a type doesn't seem to exist in warp yet. `cargo install --path .` Compile time before 4m49s Compile time now 4m14s Tool to list heavy functions: ` CARGO_PROFILE_RELEASE_LTO=fat cargo llvm-lines --release --bin quickwit > llvm_lines ` Size down from 32MB to 22MB addresses #5539
@PSeitz can we close this? |
It's improved a lot with #5540, but some really long type chains remain.
We can replace the boxed or chains with a Vec, since they all contain the same |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Quickwit compile times are pretty long, this could by some part be caused by overly complex warp types.
Below is an example of such a type. We probably should break these type chains by boxing them.
Super long type
The text was updated successfully, but these errors were encountered: