在嵌入Servo作为二进制文件的一部分时,我经历了很长的连续构建时间。例如,使用此tutorial for embedding Servo,在初始构建完成后,对我的代码的任何修改都需要40s +来重建第4代四核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
我不打算经常更新伺服,但我需要我的应用程序。有没有办法加快构建时间?
答案 0 :(得分:6)
您可以做的一件事是将与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
lib下的Cargo.toml。
要使用此库,您可以将extern crate this_needs_servo;
以及所有必需的use
语句添加到您的主页。
现在servo
只应在this_needs_servo
lib中更改内容时进行编译。