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

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

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

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

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

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

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

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

cargo check 而非 cargo build

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

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

建议使用 cargo watch -c

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

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

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

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

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

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

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

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

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

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

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

移除没用的依赖项

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

cargo install cargo-machete && cargo machete

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

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

编译时间分析

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

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

测试,使用 Cargo Nextest 代替 cargo test

cargo install cargo-nextestcargo nextest run

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

购买更好的电脑硬件

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

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

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

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

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

标签:
  • 热门焦点
  • Find N3入网:最高支持16+1TB

    Find N3入网:最高支持16+1TB

    OPPO将于近期登场的Find N3折叠屏目前已经正式入网,型号为PHN110。本次Find N3在外观方面相比前两代有很大的变化,不再是小号的横向折叠屏,而是跟别的厂商一样采用了较为常见的
  • 消息称迪士尼要拍真人版《魔发奇缘》:女主可能也找黑人演员

    消息称迪士尼要拍真人版《魔发奇缘》:女主可能也找黑人演员

    8月5日消息,迪士尼确实有点忙,忙着将不少动画改成真人版,继《美人鱼》后,真人版《白雪公主》、《魔发奇缘》也在路上了。据外媒消息称,迪士尼将打造真人版
  • CSS单标签实现转转logo

    CSS单标签实现转转logo

    转转品牌升级后更新了全新的Logo,今天我们用纯CSS来实现转转的新Logo,为了有一定的挑战性,这里我们只使用一个标签实现,将最大化的使用CSS能力完成Logo的绘制与动画效果。新logo
  • 企业采用CRM系统的11个好处

    企业采用CRM系统的11个好处

    客户关系管理(CRM)软件可以为企业提供很多的好处,从客户保留到提高生产力。  CRM软件用于企业收集客户互动,以改善客户体验和满意度。  CRM软件市场规模如今超过580
  • 分享六款相见恨晚的PPT模版网站, 祝你做出精美的PPT!

    分享六款相见恨晚的PPT模版网站, 祝你做出精美的PPT!

    1、OfficePLUSOfficePLUS网站旨在为全球Office用户提供丰富的高品质原创PPT模板、实用文档、数据图表及个性化定制服务。优点:OfficePLUS是微软官方网站,囊括PPT模板、Word模
  • JavaScript学习 -AES加密算法

    JavaScript学习 -AES加密算法

    引言在当今数字化时代,前端应用程序扮演着重要角色,用户的敏感数据经常在前端进行加密和解密操作。然而,这样的操作在网络传输和存储中可能会受到恶意攻击的威胁。为了确保数据
  • 大厂卷向扁平化

    大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • 荣耀Magicbook V 14 2021曙光蓝版本正式开售,拥有触摸屏

    荣耀Magicbook V 14 2021曙光蓝版本正式开售,拥有触摸屏

    荣耀 Magicbook V 14 2021 曙光蓝版本正式开售,搭载 i7-11390H 处理器与 MX450 显卡,配备 16GB 内存与 512GB SSD,重 1.48kg,厚 14.5mm,具有 1.5mm 键盘键程、
  • onebot M24巧系列一体机采用轻薄机身设计,现已在各平台开售

    onebot M24巧系列一体机采用轻薄机身设计,现已在各平台开售

    onebot M24 巧系列一体机目前已在线上线下各平台同步开售。onebot M24 巧系列采用一体化轻薄机身设计,最薄处为 10.15mm,拥有宝石红、午夜蓝、石墨绿、雅致
Top