喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(=・ω・=)
14.1.1. release profile
release profile是发布配置的意思,它是一系列预定好的配置方案。而且它是可自定义的,我们可以自定义它,使用不同的配置,从而让程序员对代码的编译有更多的控制权。
每个profile就是每个配置档案,独立于其它的profile。
在cargo里主要有两个profile:
dev profile
:适用于开发、cargo build
release profile
:适用于发布、cargo build --realse
使用cargo build
和cargo build --realse
指令会使用两个不同的配置文件:
$ cargo build
Finished dev [unoptimized + debuginfo] target(s) in 0.0s
$ cargo build --release
Finished release [optimized] target(s) in 0.0s
14.1.2. 自定义profile
针对每个profile, cargo都提供了默认的配置。
如果想要自定义配置(不论是dev profile
还是release profile
),可以在Cargo.toml
里添加[profile.xxxx]
区域,在里面覆盖默认配置的子集,通常我们不会覆盖所有的选项,只需要覆盖那些想修改的配置。
看个例子:
[profile.dev]
opt-level = 0
[profile.release]
opt-level = 3
opt-level
设置控制 Rust 将应用于您的代码的优化数量,范围为0到3。应用更多优化会延长编译时间,因此,如果你经常进行开发和编译代码,则需要更少的优化即使生成的代码运行速度较慢,也可以进行优化以加快编译速度。因此dev
的默认opt-level
是0
。
当准备好发布代码时,最好花更多时间进行编译。代码只会在发布模式下编译一次,但会多次运行编译后的程序,因此发布模式会用更长的编译时间换取运行速度更快的代码。这就是为什么release
文件的默认opt-level
是3
。