日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

加速 Rust 編譯時間,掌握這個技巧,速度全面提升 30 ~ 40 %

來源: 責編: 時間:2024-04-03 17:44:03 238觀看
導讀大家好,我是漁夫。今天分享主題,如何加快 Rust 項目編譯時間的技巧,如果你還是個初學者,可能還體會不到它多慢。首先,建議確保你使用最新的 Rust 版本,因為,Rust 團隊正在努力改變這個事實,其實到今年為止,編譯器速度全面提高

大家好,我是漁夫。Xkv28資訊網——每日最新資訊28at.com

今天分享主題,如何加快 Rust 項目編譯時間的技巧,如果你還是個初學者,可能還體會不到它多慢。Xkv28資訊網——每日最新資訊28at.com

首先,建議確保你使用最新的 Rust 版本,因為,Rust 團隊正在努力改變這個事實,其實到今年為止,編譯器速度全面提高了 30-40% 了,一些項目的提高幅度高達 45% 以上。所以保持新版的好處。Xkv28資訊網——每日最新資訊28at.com

更新命令在這里:rustup update。Xkv28資訊網——每日最新資訊28at.com

Xkv28資訊網——每日最新資訊28at.com

cargo check 而非 cargo build

在許多數情況下,如果只想檢查代碼是否存在錯誤,是不必進行完整的編譯過程的。所以,盡量避免進行編譯,而是使用快速的代碼檢查、類型檢查和借用檢查。Xkv28資訊網——每日最新資訊28at.com

如何搞呢,建議使用 cargo check 而不是 cargo build。因為 cargo check 會快速檢查代碼,而不會生成可執行的二進制文件。Xkv28資訊網——每日最新資訊28at.com

建議使用 cargo watch -c

這個好處很多了,當使用 cargo watch -c 它是可以自動在代碼發生變化時進行代碼檢查,這樣你就可以更快地發現錯誤并進行及時修復。優點:即時反饋、提高效率、減少錯誤和方便性。Xkv28資訊網——每日最新資訊28at.com

切換到新的并行編譯器前端

你可以在 Nightly 版本中,啟用新的并行編譯器前端。使用 -Z threads=8 選項運行 Nightly 編譯器:Xkv28資訊網——每日最新資訊28at.com

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

也可以通過添加 -Z threads=8到~/.cargo/config.toml文件中將其設為默認值:Xkv28資訊網——每日最新資訊28at.com

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

還可以在 shell 的配置文件中設置別名(例如/.bashrc或/.zshrc):Xkv28資訊網——每日最新資訊28at.com

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

啟用 -Z threads=8 多線程編譯選項后,基準測試顯示編譯時間可能減少多達 50%。盡管實際性能提升會根據代碼而變化,但還是可以試試。Xkv28資訊網——每日最新資訊28at.com

以下是并行編譯器前端運行中的可視化,官網也可以說明:Xkv28資訊網——每日最新資訊28at.com

Xkv28資訊網——每日最新資訊28at.com

移除沒用的依賴項

刪除未使用的依賴,減少構建時間和資源消耗及減小項目體積。Xkv28資訊網——每日最新資訊28at.com

cargo install cargo-machete && cargo machete

找出代碼庫中編譯緩慢的 crate

運行 cargo build --timings 命令,這會提供關于每個 crate 編譯所花費的時間信息。Xkv28資訊網——每日最新資訊28at.com

編譯時間分析

如果,你想更加深入地了解 Rust 編譯過程使用 cargo rustc -- -Zself-profile 進行編譯時間分析。生成的跟蹤文件可以使用火焰圖或 Chromium 分析器進行可視化。Xkv28資訊網——每日最新資訊28at.com

Xkv28資訊網——每日最新資訊28at.com

測試,使用 Cargo Nextest 代替 cargo test

cargo install cargo-nextestcargo nextest run

Cargo 提供了一個小型測試運行器,這非常方便。但特別是在需要構建多個測試二進制文件時,由于其并行執行模型,使用cargo nextest 可以比cargo test 提高高達 60% 的速度。以下是一些快速基準測試:Xkv28資訊網——每日最新資訊28at.com

購買更好的電腦硬件

Xkv28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-81248-0.html加速 Rust 編譯時間,掌握這個技巧,速度全面提升 30 ~ 40 %

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

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

下一篇: 用代碼實現流水線部署,像詩一般優雅

標簽:
  • 熱門焦點
  • 一加Ace2 Pro真機揭曉 鈦空灰配色質感拉滿

    終于,在經過了幾波預熱之后,一加Ace2 Pro的外觀真機圖在網上出現了。還是博主數碼閑聊站曝光的,這次的外觀設計還是延續了一加11的方案,只是細節上有了調整,例如新加入了鈦空灰
  • Rust中的高吞吐量流處理

    作者 | Noz編譯 | 王瑞平本篇文章主要介紹了Rust中流處理的概念、方法和優化。作者不僅介紹了流處理的基本概念以及Rust中常用的流處理庫,還使用這些庫實現了一個流處理程序
  • 服務存儲設計模式:Cache-Aside模式

    Cache-Aside模式一種常用的緩存方式,通常是把數據從主存儲加載到KV緩存中,加速后續的訪問。在存在重復度的場景,Cache-Aside可以提升服務性能,降低底層存儲的壓力,缺點是緩存和底
  • 不容錯過的MSBuild技巧,必備用法詳解和實踐指南

    一、MSBuild簡介MSBuild是一種基于XML的構建引擎,用于在.NET Framework和.NET Core應用程序中自動化構建過程。它是Visual Studio的構建引擎,可在命令行或其他構建工具中使用
  • 學習JavaScript的10個理由...

    作者 | Simplilearn編譯 | 王瑞平當你決心學習一門語言的時候,很難選擇到底應該學習哪一門,常用的語言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 微信語音大揭秘:為什么禁止轉發?

    大家好,我是你們的小米。今天,我要和大家聊一個有趣的話題:為什么微信語音不可以轉發?這是一個我們經常在日常使用中遇到的問題,也是一個讓很多人好奇的問題。讓我們一起來揭開這
  • 本地生活這塊肥肉,拼多多也想吃一口

    出品/壹覽商業 作者/李彥編輯/木魚拼多多也看上本地生活這塊蛋糕了。近期,拼多多在App首頁“充值中心”入口上線了本機生活界面。壹覽商業發現,該界面目前主要
  • OPPO K11搭載長壽版100W超級閃充:26分鐘充滿100%

    據此前官方宣布,OPPO將于7月25日也就是今天下午14:30舉辦新品發布會,屆時全新的OPPO K11將正式與大家見面,將主打旗艦影像,和同檔位競品相比,其最大的賣
  • 2022爆款:ROG魔霸6 冰川散熱系統持續護航

    喜逢開學季,各大商家開始推出自己的新產品,進行打折促銷活動。對于忠實的端游愛好者來說,能夠擁有一款夢寐以求的筆記本電腦是一件十分開心的事。但是現在的
Top 主站蜘蛛池模板: 博爱县| 犍为县| 松溪县| 汉川市| 南投县| 新巴尔虎右旗| 房产| 台中市| 宁强县| 乳山市| 孝感市| 岚皋县| 五华县| 鸡西市| 岳阳市| 平泉县| 博爱县| 天等县| 宽甸| 呼伦贝尔市| 万州区| 台湾省| 汶川县| 红原县| 凤山县| 大港区| 怀来县| 双鸭山市| 常熟市| 宁波市| 阿荣旗| 三明市| 三门县| 秦皇岛市| 镇康县| 宁陵县| 邯郸市| 桂林市| 务川| 拜泉县| 金堂县|