まとめ
- Linker を替える と良いようです (『Enable Fast Compiles (Optional) 』) 。 5 倍ほど速くコンパイルできるようになりました。
- 依存クレートが遅くなる場合は、
opt-level
を設定します。image
などで顕著でした。 - さらに sccache も導入します。複数のプロジェクトでクレートのキャッシュを共有できます。
Linker を変える
Bevy - Setup からのコピペです。
2020/12/19 にコピペしたのですが、古くなっていたらごめんなさい。
LLD or zld のインストール
# ubuntu
sudo apt-get install lld
# arch
sudo pacman -S lld
# macOS
brew install michaeleisel/zld/zld
# windows
cargo install -f cargo-binutils
rustup component add llvm-tools-preview
nightly rust の有効化
rustup toolchain install nightly
# use nightly rust for this project
# rustup override set nightly
# or everywhere
rustup default nightly
.cargo/config.toml の作成
プロジェクト毎に config.toml
を設定する場合:
cd your/project/root
mkdir .cargo
curl 'https://raw.githubusercontent.com/bevyengine/bevy/master/.cargo/config_fast_builds' > .cargo/config.toml
グローバルな Cargo.toml
を作る場合:
mkdir ~/.cargo
curl 'https://raw.githubusercontent.com/bevyengine/bevy/master/.cargo/config_fast_builds' > ~/.cargo/config.toml
.cargo/Cargo.toml
への修正
『image クレートによる画像のロードが極端に遅くなった』
.cargo/config.toml
から最適化レベルを設定できます。やり過ぎな気もしますが、たとえば opt-level = 3
にするには:
[profile.dev.package."image"]
opt-level = 3
# [profile.dev.package."*"]
# opt-level = 3
最適化レベルを上げ過ぎると、初回のコンパイルは遅くなります。
sccache
sccache も導入します。複数のプロジェクトでクレートのキャッシュを共有できます。