update cargo profile

pull/457/head
sunface 3 years ago
parent 30feeef876
commit a39aaf8479

@ -49,4 +49,23 @@ cargo build --profile release-lto
下面我们来看看 profile 中可以进行哪些优化设置。 下面我们来看看 profile 中可以进行哪些优化设置。
#### opt-level #### opt-level
该字段用于控制 [`-C opt-level`](https://doc.rust-lang.org/stable/rustc/codegen-options/index.html#opt-level) 标志的优化级别。更高的优化级别往往意味着运行更快的代码,但是也意味着更慢的编译速度。
同时,更高的编译级别甚至会造成编译代码的改变和再排列,这会为 debug 带来更高的复杂度。
`opt-level` 支持的选项包括:
- `0`: 无优化
- `1`: 基本优化
- `2`: 一些优化
- `3`: 全部优化
- "s": 优化输出的二进制文件的大小
- "z": 优化二进制文件大小,但也会关闭循环向量化
我们非常推荐你根据自己的需求来找到最适合的优化级别(例如,平衡运行和编译速度)。而且有一点值得注意,有的时候优化级别和性能的关系可能会出乎你的意料之外,例如 `3``2` 更慢,再比如 `"s"` 并没有让你的二进制文件变得更小。
而且随着 `rustc` 版本的更新,你之前的配置也可能要随之变化,总之,为项目的热点路径做好基准性能测试是不错的选择,不然总不能每次都手动重写代码来测试吧 :)
如果想要了解更多,可以参考 [rustc 文档](https://doc.rust-lang.org/stable/rustc/profile-guided-optimization.html),这里有更高级的优化技巧。
#### lto #### lto
Loading…
Cancel
Save