-
-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Description
Describe the bug
At times, I've gotten build times as large as 10 minutes. I've even gotten a 20 minute build time, but I've lost the cargo output to my bash terminal buffer.
To investigate, I set up some profile settings in my project to disable LTO and disable optimisation (in order to get the best case scenario), and then did a clean build using cargo clean && cargo +nightly build --timings.
The report shows that the three biggest hinderances are zstd-sys, blake3, and bzip2-sys.
Using cargo tree -i, I found the following
$ cargo tree -i zstd-sys
zstd-sys v1.6.3+zstd.1.5.2
└── zstd-safe v4.1.4+zstd.1.5.2
└── zstd v0.10.0+zstd.1.5.2
├── tauri-codegen v1.0.0-rc.2
│ └── tauri-macros v1.0.0-rc.2 (proc-macro)
│ └── tauri v1.0.0-rc.3
│ └── dsrbmm v0.1.0
├── tauri-utils v1.0.0-rc.2
│ ├── tauri-build v1.0.0-rc.3
│ │ [build-dependencies]
│ │ └── dsrbmm v0.1.0
│ ├── tauri-codegen v1.0.0-rc.2 (*)
│ └── tauri-macros v1.0.0-rc.2 (proc-macro) (*)
└── tauri-utils v1.0.0-rc.2
├── tauri v1.0.0-rc.3 (*)
├── tauri-runtime v0.3.2
│ ├── tauri v1.0.0-rc.3 (*)
│ └── tauri-runtime-wry v0.3.2
│ └── tauri v1.0.0-rc.3 (*)
└── tauri-runtime-wry v0.3.2 (*)
$ cargo tree -i blake3
blake3 v1.3.1
└── tauri-codegen v1.0.0-rc.2
└── tauri-macros v1.0.0-rc.2 (proc-macro)
└── tauri v1.0.0-rc.3
└── dsrbmm v0.1.0
$ cargo tree -i bzip2-sys
bzip2-sys v0.1.11+1.0.8
└── bzip2 v0.4.3
└── zip v0.5.13
└── tauri v1.0.0-rc.3
└── dsrbmm v0.1.0
As you can see, they all impact the compile time of Tauri, and this is the best-case scenario (no overhead of optimising or LTO to increase the compile time).
I know there's nothing Tauri can do about the compile time of the libraries, but are there any lightweight alternatives that could replace these behemoths?
I do only have an Intel Core i7 7500U, so use that to put the performance in perspective. Only 4 cores, a maximum concurrency of 7, and 321 total compilation units. Even so, the fact that zstd-sys took half of the total build time is insane and is something that is worth at least looking further into. With those 3 hogging 3 CPU cores, I only had 1 thread remaining for everything else. And quad core isn't exactly a niche setup
Reproduction
No response
Expected behavior
No response
Platform and versions
Operating System - Windows, version 10.0.19043 X64
Webview2 - 98.0.1108.56
Visual Studio Build Tools:
- Visual Studio Build Tools 2019
WARNING: no lock files found, defaulting to npm
Node.js environment
Node.js - 16.10.0
@tauri-apps/cli - 1.0.0-rc.5
@tauri-apps/api - Not installed
Global packages
npm - 8.4.1
pnpm - 6.29.1
yarn - 3.1.1
Rust environment
rustup - 1.24.3
rustc - 1.59.0
cargo - 1.59.0
toolchain - stable-x86_64-pc-windows-msvc
App directory structure
/icons
/src
/target
/WixTools
App
tauri - 1.0.0-rc.3
tauri-build - 1.0.0-rc.3
tao - 0.6.2
wry - 0.13.3
build-type - bundle
CSP - default-src blob: data: filesystem: ws: wss: http: https: tauri: 'unsafe-eval' 'unsafe-inline' 'self' img-src: 'self'
distDir - ../frontend/build/dist
devPath - http://localhost:3000/
framework - ReactStack trace
No response
Additional context
No response
