加速 Rust 编译时间,掌握这个技巧,速度全面提升 30 ~ 40 %

开发
今天分享主题,如何加快 Rust 项目编译时间的技巧,如果你还是个初学者,可能还体会不到它多慢。

大家好,我是渔夫。

今天分享主题,如何加快 Rust 项目编译时间的技巧,如果你还是个初学者,可能还体会不到它多慢。

首先,建议确保你使用最新的 Rust 版本,因为,Rust 团队正在努力改变这个事实,其实到今年为止,编译器速度全面提高了 30-40% 了,一些项目的提高幅度高达 45% 以上。所以保持新版的好处。

更新命令在这里:rustup update。

cargo check 而非 cargo build

在许多数情况下,如果只想检查代码是否存在错误,是不必进行完整的编译过程的。所以,尽量避免进行编译,而是使用快速的代码检查、类型检查和借用检查。

如何搞呢,建议使用 cargo check 而不是 cargo build。因为 cargo check 会快速检查代码,而不会生成可执行的二进制文件。

建议使用 cargo watch -c

这个好处很多了,当使用 cargo watch -c 它是可以自动在代码发生变化时进行代码检查,这样你就可以更快地发现错误并进行及时修复。优点:即时反馈、提高效率、减少错误和方便性。

切换到新的并行编译器前端

你可以在 Nightly 版本中,启用新的并行编译器前端。使用 -Z threads=8 选项运行 Nightly 编译器:

RUSTFLAGS="-Z threads=8" cargo +nightly build

也可以通过添加 -Z threads=8到~/.cargo/config.toml文件中将其设为默认值:

[build]
rustflags = ["-Z", "threads=8"]

还可以在 shell 的配置文件中设置别名(例如/.bashrc或/.zshrc):

alias cargo="RUSTFLAGS='-Z threads=8' cargo +nightly"

启用 -Z threads=8 多线程编译选项后,基准测试显示编译时间可能减少多达 50%。尽管实际性能提升会根据代码而变化,但还是可以试试。

以下是并行编译器前端运行中的可视化,官网也可以说明:

移除没用的依赖项

删除未使用的依赖,减少构建时间和资源消耗及减小项目体积。

cargo install cargo-machete && cargo machete

找出代码库中编译缓慢的 crate

运行 cargo build --timings 命令,这会提供关于每个 crate 编译所花费的时间信息。

编译时间分析

如果,你想更加深入地了解 Rust 编译过程使用 cargo rustc -- -Zself-profile 进行编译时间分析。生成的跟踪文件可以使用火焰图或 Chromium 分析器进行可视化。

测试,使用 Cargo Nextest 代替 cargo test

cargo install cargo-nextest
cargo nextest run

Cargo 提供了一个小型测试运行器,这非常方便。但特别是在需要构建多个测试二进制文件时,由于其并行执行模型,使用cargo nextest 可以比cargo test 提高高达 60% 的速度。以下是一些快速基准测试:

购买更好的电脑硬件

责任编辑:赵宁宁 来源: 码农渔夫
相关推荐

2023-04-21 10:10:07

Vite 4.3前端

2009-09-04 11:34:31

NetBeans优化

2009-04-13 11:20:46

IBMdWWeb

2010-02-06 14:32:45

ibmdw

2024-04-12 08:28:38

优化查询语句PostgreSQL索引

2017-12-05 13:41:02

SQL数据库SQL查询

2020-03-23 10:51:40

面试技巧技术

2013-11-11 09:08:34

40 GbE40G以太网

2021-07-05 13:10:17

技巧MySQL数据库

2021-12-08 23:16:02

Windows 11Windows微软

2022-02-07 15:44:52

开发者CPUAndroid 13

2012-03-13 09:25:05

IT女

2019-08-16 02:00:46

AndroidGoogle 移动系统

2024-03-11 15:47:11

RustPython代码

2018-06-21 11:03:54

shelllinux命令

2024-02-28 16:20:58

Windows技巧

2022-02-23 10:54:37

电脑卡顿硬件

2023-11-30 18:25:57

数据训练

2018-01-27 21:19:06

前端Rust Service

2023-12-01 15:54:44

点赞
收藏

51CTO技术栈公众号