#cargo #default #bake #settings #optimization #compare #smarter

app cargo-bake

Rust + Cargo 的更智能的默认优化设置

2 个不稳定版本

使用旧的 Rust 2015

0.2.0 2015年11月24日
0.1.0 2015年11月20日

#613 in Cargo 插件

MIT/Apache

13KB
344

cargo-bake

通过更智能的默认设置,更快地编译 Rust。是 cargo build 的替代品。默认的 bake 编译速度比 Cargo 的 --release 更快,并产生性能合理的代码。

用法

$ cargo install cargo-bake
$ cargo bake <other-cargo-build-options>

默认(常规)的 bake 生成的编译器标志大致如下

-C opt-level=2
-C inline-threshold=25
-C no-vectorize-loops
-C codegen-units=$NUM_CPUS_UP_TO_4
--link-args=--fuse-ld=gold
-Z no-verify
-C debuginfo=0

除了常规的 bake 之外,cargo-bake 还接受 --fast bake,类似于 Cargo 的默认设置,--slow bake,类似于 Cargo 的发布版本,以及 --glacial bake,它还额外添加了 LTO。

默认情况下,cargo-bake 在所有模式下都仅将调试信息生成减少到行号。使用 --debug 标志来开启完整的调试信息。

运行 cargo bake --compare 来比较 cargo build --releasecargo bake 的编译时间。

注意:cargo-bake 需要 2015-11-23 晚间版本或更高版本。

贡献

你能通过调整优化来使 Rust 编译更快吗?发送我一个 PR!

有多快?

html5ever:

cargo build --release: 27467
cargo bake: 25733

hyper:

cargo build --release: 30156
cargo bake: 26743

regex:

cargo build --release: 7006
cargo bake: 5078

image:

cargo build --release: 50449
cargo bake: 50928

未来工作

  • 尝试控制精确的遍历
  • 尝试关闭 alwaysinline 遍历

许可

MIT/Apache-2.0

依赖

~5MB
~103K SLoC