【问题标题】:Why does this bevy project take so long to compile and launch?为什么这个 bevy 项目需要这么长时间才能编译和启动?
【发布时间】:2023-02-25 06:36:46
【问题描述】:

我开始关注this教程,了解如何在 bevy 中制作游戏。代码编译正常,但仍然很慢(老实说我不确定这是否正常,大约需要 8 秒),但是当我启动游戏时,窗口变白(Not Responding)几秒钟(大约与编译时间相同的时间,可能稍微少一点)在正确加载之前。
这是我的Cargo.toml

[package]
name = "rustship"
version = "0.1.0"
edition = "2021"

[dependencies]
bevy = "0.8.1"

# Enable a small amount of optimization in debug mode
[profile.dev]
opt-level = 1

# Enable high optimizations for dependencies (incl. Bevy), but not for our code:
[profile.dev.package."*"]
opt-level = 3

[workspace]
resolver = "2"

我在使用和不使用工作区解析器的情况下都进行了尝试。我的 rustup 工具链是nightly-x86_64-pc-windows-gnu,我正在使用rust-lld链接程序:

[target.nightly-x86_64-pc-windows-gnu]
linker = "rust-lld.exe"
rustflags = ["-Zshare-generics=n"]

根据 official bevy setup guide 这样应该更快。我尝试过使用 rust-lld 和不使用它,但它似乎没有任何改变。
这是 cargo run 的输出(A_NUMBER 是一个 4 位数字):

AdapterInfo { name: "NVIDIA GeForce RTX 3090", vendor: A_NUMBER, device: A_NUMBER, device_type: DiscreteGpu, backend: Vulkan }

关于如何改进编译时间并直接加载窗口的任何想法?我的游戏一点都不重。现在,我只是加载一个精灵。教程中的人使用 MacOS,这对他来说似乎相当快。

【问题讨论】:

  • 我看到您没有像设置指南中提到的那样为 bevy 启用 "dynamic" 功能以加快编译速度。根据我的经验,这是最有影响力的变化。
  • 在同一页面上,它表示 "dynamic" 功能在 Windows 上尚不可用。

标签: rust compiler-optimization rust-cargo bevy


【解决方案1】:

关于 Windows 动态功能的两个问题现已解决,我已经能够在 Windows 上使用它一段时间了。

https://github.com/bevyengine/bevy/issues/2921#issuecomment-1315886660 https://github.com/bevyengine/bevy/issues/1110#issuecomment-1312926923

您至少需要使用 bevy 版本 0.9.1

re-wroteWindows 的 GilRs 后端专门用于使这项工作大声笑。 (Bevy 使用 GilRs,它链接的 xInput 库存在动态链接问题)

重要的!: 在 Windows 上使用动态功能时,这些行是必需的

# Enable a small amount of optimization in debug mode
[profile.dev]
opt-level = 1

# Enable high optimizations for dependencies (incl. Bevy), but not for our code:
[profile.dev.package."*"]
opt-level = 3

我刚刚在 Bevy 网站的 related issue 上评论了关于更新说明的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 2017-09-22
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多