我正在使用cargo build --release
在发布配置中构建我的项目并cargo test
构建和运行我的测试.
但是,我还想在发布模式下构建我的测试; 这可以用货物完成吗?
我正在编写一个计算量很大的程序,在调试模式下运行起来非常慢.
我的程序也受到整数溢出的困扰,因为我正在从u8
数组中读取数据并u8
通过类型推断将扩展类型扩展到意外的位置,而Rust更喜欢溢出而不是将整数提升为更大的类型.
在发布模式下构建会禁用溢出检查:
cargo run --release
Run Code Online (Sandbox Code Playgroud)
如何通过优化和运行时溢出检查来构建Rust可执行文件?
我经常想在发布模式下进行编译,debug = true
以便我可以更轻松地读取生成的程序集。我目前正在这样做:
[profile.release]
debug = true
Run Code Online (Sandbox Code Playgroud)
但我不希望在最终版本中出现任何调试符号。我想做这样的事情:
[profile.custom]
debug = true
opt-level = 3
rpath = false
lto = true
debug-assertions = false
codegen-units = 1
panic = 'unwind'
Run Code Online (Sandbox Code Playgroud)
然后运行
[profile.release]
debug = true
Run Code Online (Sandbox Code Playgroud)
我已阅读文档但无济于事。
我正在运行使用调试符号编译的 Rust 实用程序。
cargo build
# without the "--release" flag
Run Code Online (Sandbox Code Playgroud)
与用 C 编写的相同实用程序相比,这些确实很慢。
调试符号是否可能影响性能?