Open1
Bevy勉強ノート2025

Bevyの開発時のストレスを減らす方法。
ずっと疑問に思っていた、どうすればコンパイルするとき部分的にReleaseビルドっぽくしたりできるかがわかった。bevy-procedural/modeling のコードをいじっていて気付いた。
# Cargo.toml
# Enable a small amount of optimization in debug mode
[profile.fast-dev]
inherits = "dev"
opt-level = 1
# Enable high optimizations for dependencies (incl. Bevy), but not for our code:
[profile.fast-dev.package."*"]
inherits = "dev"
opt-level = 3
このコードでは、基本的には -O1
の最適化を適用しながらも、Bevyなどの依存関係には -O3
の最適化を適用することで、デバッグ時にも実行を速くし、バランスをとっている。
さらに以下の動画にある、Bevyの動的リンク機能を有効にすると次のようになる。こうすればさらにリンクが速くなり、開発がさらに高速化される。(動画中にあるように、これをdefaultのfeaturesにしてしまうと、Releaseビルド時にも適用されて都合が悪いので、開発時のみこのfeaturesを使うと良いとのこと。)
# Cargo.toml
[features]
dynamic_linking = ["bevy/dynamic_linking"]
# Enable a small amount of optimization in debug mode
[profile.fast-dev]
inherits = "dev"
opt-level = 1
# Enable high optimizations for dependencies (incl. Bevy), but not for our code:
[profile.fast-dev.package."*"]
inherits = "dev"
opt-level = 3
さらに動画中にあるように、rust-lldやmoldなどのリンカを使うとさらに開発が快適になる。
sccacheを使うとさらに快適になるのだけれど、実はこの一連の流れはBevyのSetupガイド (Getting Started)に書いてあるらしい。(なぜ知らなかった…。)