当前位置:首页 > 科技  > 软件

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

来源: 责编: 时间:2024-04-03 17:44:03 161观看
导读大家好,我是渔夫。今天分享主题,如何加快 Rust 项目编译时间的技巧,如果你还是个初学者,可能还体会不到它多慢。首先,建议确保你使用最新的 Rust 版本,因为,Rust 团队正在努力改变这个事实,其实到今年为止,编译器速度全面提高

大家好,我是渔夫。8xv28资讯网——每日最新资讯28at.com

今天分享主题,如何加快 Rust 项目编译时间的技巧,如果你还是个初学者,可能还体会不到它多慢。8xv28资讯网——每日最新资讯28at.com

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

更新命令在这里:rustup update。8xv28资讯网——每日最新资讯28at.com

8xv28资讯网——每日最新资讯28at.com

cargo check 而非 cargo build

在许多数情况下,如果只想检查代码是否存在错误,是不必进行完整的编译过程的。所以,尽量避免进行编译,而是使用快速的代码检查、类型检查和借用检查。8xv28资讯网——每日最新资讯28at.com

如何搞呢,建议使用 cargo check 而不是 cargo build。因为 cargo check 会快速检查代码,而不会生成可执行的二进制文件。8xv28资讯网——每日最新资讯28at.com

建议使用 cargo watch -c

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

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

你可以在 Nightly 版本中,启用新的并行编译器前端。使用 -Z threads=8 选项运行 Nightly 编译器:8xv28资讯网——每日最新资讯28at.com

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

也可以通过添加 -Z threads=8到~/.cargo/config.toml文件中将其设为默认值:8xv28资讯网——每日最新资讯28at.com

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

还可以在 shell 的配置文件中设置别名(例如/.bashrc或/.zshrc):8xv28资讯网——每日最新资讯28at.com

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

启用 -Z threads=8 多线程编译选项后,基准测试显示编译时间可能减少多达 50%。尽管实际性能提升会根据代码而变化,但还是可以试试。8xv28资讯网——每日最新资讯28at.com

以下是并行编译器前端运行中的可视化,官网也可以说明:8xv28资讯网——每日最新资讯28at.com

8xv28资讯网——每日最新资讯28at.com

移除没用的依赖项

删除未使用的依赖,减少构建时间和资源消耗及减小项目体积。8xv28资讯网——每日最新资讯28at.com

cargo install cargo-machete && cargo machete

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

运行 cargo build --timings 命令,这会提供关于每个 crate 编译所花费的时间信息。8xv28资讯网——每日最新资讯28at.com

编译时间分析

如果,你想更加深入地了解 Rust 编译过程使用 cargo rustc -- -Zself-profile 进行编译时间分析。生成的跟踪文件可以使用火焰图或 Chromium 分析器进行可视化。8xv28资讯网——每日最新资讯28at.com

8xv28资讯网——每日最新资讯28at.com

测试,使用 Cargo Nextest 代替 cargo test

cargo install cargo-nextestcargo nextest run

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

购买更好的电脑硬件

8xv28资讯网——每日最新资讯28at.com

本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-81248-0.html加速 Rust 编译时间,掌握这个技巧,速度全面提升 30 ~ 40 %

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: e.target 和 e.currentTarget 的区别?你到底知不知道?

下一篇: 用代码实现流水线部署,像诗一般优雅

标签:
  • 热门焦点
  • 卢伟冰长文解析K60至尊版 对Redmi有着里程碑式的意义

    卢伟冰长文解析K60至尊版 对Redmi有着里程碑式的意义

    在今天的Redmi后性能时代战略发布会结束之后,Redmi总经理卢伟冰又带来了一篇长文,详解了为什么 Redmi 要开启后性能时代?为什么选择和 MediaTek、Pixelworks 深度合作?以及后性
  • K6:面向开发人员的现代负载测试工具

    K6:面向开发人员的现代负载测试工具

    K6 是一个开源负载测试工具,可以轻松编写、运行和分析性能测试。它建立在 Go 和 JavaScript 之上,它被设计为功能强大、可扩展且易于使用。k6 可用于测试各种应用程序,包括 Web
  • 2023 年的 Node.js 生态系统

    2023 年的 Node.js 生态系统

    随着技术的不断演进和创新,Node.js 在 2023 年达到了一个新的高度。Node.js 拥有一个庞大的生态系统,可以帮助开发人员更快地实现复杂的应用。本文就来看看 Node.js 最新的生
  • 一年经验在二线城市面试后端的经验分享

    一年经验在二线城市面试后端的经验分享

    忠告这篇文章只适合2年内工作经验、甚至没有工作经验的朋友阅读。如果你是2年以上工作经验,请果断划走,对你没啥帮助~主人公这篇文章内容来自 「升职加薪」星球星友 的投稿,坐
  • .NET 程序的 GDI 句柄泄露的再反思

    .NET 程序的 GDI 句柄泄露的再反思

    一、背景1. 讲故事上个月我写过一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,当时用的是 GDIView + WinDbg 把问题搞定,前者用来定位泄露资源,后者用来定位泄露代码,后面有朋友反
  • 小米MIX Fold 3下月亮相:今年唯一无短板的全能折叠屏

    小米MIX Fold 3下月亮相:今年唯一无短板的全能折叠屏

    这段时间以来,包括三星、一加、荣耀等等有不少品牌旗下的最新折叠屏旗舰都有新的进展,其中荣耀、三星都已陆续发布了最新的折叠屏旗舰,尤其号荣耀Magi
  • 苹果140W USB-C充电器:采用氮化镓技术

    苹果140W USB-C充电器:采用氮化镓技术

    据10 月 30 日 9to5 Mac 消息报道,当苹果推出新的 MacBook Pro 2021 时,该公司还推出了新的 140W USB-C 充电器,附赠在 MacBook Pro 16 英寸机型的盒子里,也支
  • 联想的ThinkBook Plus下一版曝光,键盘旁边塞个平板

    联想的ThinkBook Plus下一版曝光,键盘旁边塞个平板

    ThinkBook Plus 是联想的一个特殊笔记本类别,它在封面放入了一块墨水屏,也给人留下了较为深刻的印象。据有人爆料,联想的下一款 ThinkBook Plus 可能更特殊,它
  • 微软发布Windows 11新版 引入全新任务栏状态

    微软发布Windows 11新版 引入全新任务栏状态

    近日,微软发布了Windows 11新版,而Build 22563更新主要引入了几周前曝光的平板模式任务栏等,系统更流畅了。更新中,Windows 11加入了专门针对平板优化的任务栏
Top
Baidu
map