我在嵌入 Servo 时遇到了很长的连续构建时间作为我的二进制文件的一部分。例如,使用这个 tutorial for embedding Servo ,在初始构建完成后,对我的代码的任何修改都需要 40 秒以上才能在第四代四核 i7 上重建二进制文件:
这是 Cargo 的示例输出:
❯ cargo build
Finished dev [unoptimized + debuginfo] target(s) in 0.1 secs
❯ touch src/main.rs
❯ cargo build
Compiling servo-embedding-example v0.1.0
Finished dev [unoptimized + debuginfo] target(s) in 57.9 secs
我正在运行一个最近的夜间工具链:
❯ rustc --version
rustc 1.25.0-nightly (15a1e2844 2018-01-20)
❯ cargo --version
cargo 0.26.0-nightly (6a8eb71f6 2018-01-13)
增量构建已开启:
❯ echo $CARGO_INCREMENTAL
1
我不打算经常更新 Servo,但我的应用程序需要它。有什么方法可以加快构建时间?
最佳答案
您可以做的一件事是将直接与 Servo 交互的代码与项目的其余部分分离到项目中自己的库中。
project-rs
├── Cargo.toml
├── src
│ ├── bin
│ │ └── main.rs
│ ├── this_needs_servo
│ │ └── Cargo.toml
│ │ └── lib.rs
│ └── ui
│ └── Cargo.toml
│ └── lib.rs
└── tests
└── tests.rs
你会添加
[dependencies.this_needs_servo]
path = "src/this_needs_servo"
到项目根目录中的 Cargo.toml 并将 servo
的依赖项移动到 this_needs_servo
库下的 Cargo.toml。
要使用这个库,您可以将 extern crate this_needs_servo;
以及所有必需的 use
语句添加到您的 main.rs。
现在 servo
应该只在您更改 this_needs_servo
库中的某些内容时编译。
https://stackoverflow.com/questions/49236704/
相关文章:
java - Intellij 在 jar 文件中包含 src 文件
java - 在 Java : Cannot find symbol 中使用 Kotlin 类
jenkins - 在 Jenkins 中,构建如何知道谁请求了它们?
r - R中 "Error: package ' ____ _' was built before
xcode - 如何强制 xcode 在特定文件上使用 ARC?
scala - 更新后 Unresolved 依赖 SBT 0.13.0
c++ - 使用 Xcode 在 Mac 上构建 Boost