cpu高 rust腐蚀_【翻译】Rust高性能小技巧

本文介绍了提高Rust项目运行时速度的技巧,包括开启链接时优化(LTO)、设置代码生成单元、指定目标CPU、改变panic处理方式、选择不同的分配器如jemalloc和mimalloc,以及探讨Profile Guided Optimization。强调实际的性能分析和代码优化同样重要。
摘要由CSDN通过智能技术生成

你正在写Rust但是它却不够快?即使你已经执行了cargo build --release? 这里是一些实用的小技巧用于提升Rust项目的运行时速度而不用修改任何代码。

请记住下面建议但是不要替换掉掉实际性能分析和优化。我也认为能够在实际使用中表现出的基准测试(benchmarks)是唯一有效的方式。

调整我们的release profile

首先让我们在执行cargo build --release的时候开启一些优化选项。处理很简单: 我们开启一些功能,这些功能会让发布构建更慢,但是能够得到更加彻底的优化。

我们添加下面的标记到我们的主Cargo.toml文件里,也就是cargo工作目录下最上层的Cargo.toml.如果你的文件里没有profile.release这部分,手动添加:

[profile.release]

链接时优化

接下来我们要做的第一件事就是开启[链接时优化](link-time optimization) (LTO)。这是一种整个程序或者内部模块优化因为它是链接不同部分到你的二进制(程序)的最后一步。你可以把它想象为跨越不同依赖边界时允许更好的内联(当然这也会更加复杂)。

Rust可以使用多种链接器风格(flavors),其中我们想要的一种是"贯穿所有crates优化(optimize across all crates)",也被叫"胖(fat)"。要设置这个选项,需要在你的profile里添加lto标记:

lto = "fat"

代码生成单元

接下来是一个相似的主题。为了加速编译时间,Rust尝试把你的crates分割成小块然后尽可能地并行编译。这样做的缺点就是编译器在这些块至今能够优化的地方就少了。所以,让我们告诉编译器每次把一crate作为一个块:

codegen-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值