replace dependencies with long build times when used together (closes #3571)#3773
replace dependencies with long build times when used together (closes #3571)#3773lucasfernog merged 9 commits intodevfrom
Conversation
|
That |
|
I ran a simple comparison using the API Example, without any changes. This was performed on a T410 (2 core 4 thread) w/ 8GiB RAM & an SSD.
This is a decent gain for a clean build without any real downsides IMO. I think it might have even greater effect for when stuff like LTO is disabled and possibly using the LLD linker due to it taking more of the CPU time. I don't really have the time to test all the configuration of that stuff right now however. @JamesYeoman maybe you would like to compare this branch on your project you opened the issue with. |
|
Documentation for all three targets is still working, nice! |
|
Ooh, nice improvement in performance! How do I use this branch instead of the release tauri crate? |
|
@JamesYeoman in your Cargo.toml: [build-dependencies]
tauri-build = { git = "https://github.com/tauri-apps/tauri", branch = "feat/no-dep-c-build-script" }
[dependencies]
tauri= { git = "https://github.com/tauri-apps/tauri", branch = "feat/no-dep-c-build-script", features = ["leave this unchanged"] }Make sure to run |
|
I don't have any insight about the |
|
We should look into using @wravery can |
|
I guess it could be IO cache tbh. I've just changed my release profile to remove the [profile.release]
panic = "abort" # Strip expensive panic clean-up logic
lto = "thin" # Enables link time optimizations
opt-level = 2 # Optimize for binary size
strip = "debuginfo"
incremental = true # Ensure incremental building in enabled for the release profile(this was the original release config) [profile.release]
panic = "abort" # Strip expensive panic clean-up logic
lto = "thin" # Enables link time optimizations
opt-level = "s" # Optimize for binary size
strip = true # Strips symbol information from the executable
incremental = true # Ensure incremental building in enabled for the release profileand then ran 2 builds. An 8 minute build followed by a 4 minute build, despite doing |
|
I'll merge this one, we're making a new release tomorrow if tao+wry can be updated too. We can make further improvements on another PR. |
Doing so would make a lot of callers uglier because the parameter conversions wouldn't be implemented for us. For instance, anytime we pass a The bigger problem would be anything that uses the |
Is it worth opening an issue in windows-rs to request A number of crates, has already moved to |
There are some COM interfaces implemented in tao and wry as well, particularly around drag-drop support. IIRC, the only interface in However, post 0.30.0, the It doesn't hurt to ask, the |
Correct.
Alright. Thanks anyway. We appreciate your help as always. |




What kind of change does this PR introduce?
Does this PR introduce a breaking change?
Checklist
fix: remove a typo, closes #___, #___)Other information
When
ring,zstd, andblake3where built at the same time, their build scripts that spanccwill run concurrently (even if limited by--jobs=1). This would cause massively inflated build times for dependencies that otherwise aren't too bad to build.The following dependency changes were made after looking into it in #3571
zstdbrotliblake3tauri-codegenringgetrandomgetrandomis also a CSPRNG that utilizes the OS's calls for secure random numbers. It is much more focused and smaller for our requirements.