七、Rust 构建提速

       在最新的一次基于 Rust 1.57.0 的测试中,笔者租用了一台 32c 64T 64G 配置的服务器,主频 3.1GHz,在不开启 sccache 时,能跑满全部 32c,编译时间也更短。而开启 sccache,cpu 利用较低,大概 30%的样子,关键时间变得更长了。

       每次测试前,执行一次 cargo clean (笔者有配置 sccache 缓存目录为系统全局目录)。

  • 32c,3.1/3.4GHz,64G 时:
项目/策略cargo buildcargo build --release
关闭 sccache1m 01s1m 55s
开启 sccache1m 25s2m 22s
  • 64c,2.5/2.7GHz 时:
项目/策略cargo buildcargo build --release
关闭 sccache1m 01s2m 02s
  • 16c,3.1/3.4GHz,32G 时:
项目/策略cargo buildcargo build --release
关闭 sccache1m 16s2m 15s

关闭 sccache

CPU/编译项cargo buildcargo build --release
E3-1245 v21m 27s2m 55s
6c 12T Macbook Pro 16’ i92m 13s3m 19s
I3-9300T3m 26s6m 04s

另一种 测试:

  • 首次编译:重置系统、磁盘 && cargo build。
  • 重新编译:cargo clean && cargo build 。
  • 增量编译:vim src/main.rs && cargo build 。
CPU/编译项首次编译重新编译增量编译
E5 2.5/3.2GHz 16C 32G2m 17s1m 09s13.69s
I7 4790K 4.4GHz 4C 8T 16G, MSI z97-Pc-Mate6m 05s1m 50s06.05s
I7 4790K 4.4GHz 4C 8T 16G, ASUS z97 Gryphon--04.51s
I3 9300T 3.2GHz 4C 4T 32G-3200-x1-3m 36s05.84s
6c 12T Macbook Pro 16’ i9-2m 13s09.06s
  • 4790K + ASUS z97 Gryphon
CPU项内存增量编译
4.4GHz XMP 全自动2400x104.51s
4.7GHz XMP 手动472400x104.27s
4.7GHz XMP 手动472400x204.37s
4.7GHz XMP 手动471333x104.60s

       So,12核以上,会有比较好的收效 ?持续开发中,增量编译更考验单核性能 ?所以 12900k 超频,or 5950x 开PBO ?或者全上压缩机制冷,然后手动 超 ?…


以下废弃

七、Rust 构建提速
  
  经过上一篇的案例,细心的读者应该已经注意到,Rust 的构建文件都放在了项目的 target 目录下,如果多个项目使用相同的依赖,依赖要完全重新编译,耗时还是挺久的。本节,我们学习使用 mozilla/sccache 来加速 Rust 构建过程。
  
  以 zsh 为例

# CentOS 等 Linux 需先安装: yum install -y gcc openssl-devel
cargo install sccache
cat >> ~/.zshrc << EOF
export RUSTC_WRAPPER=sccache
EOF
source ~/.zshrc
  • RUSTC_WRAPPER=sccache,这句一定要在 cargo install sccache 成功之后配置,否则会安装不上 sccache。

   配置生效后,在对新工程执行 cargo build 时,能够一定程度提升速度。当然,新工程首次构建时,整体耗时还是有点久。
  
  之后,在日常的编码中,只要不删除 target 目录,则每次执行 cargo build 时,只会对发生了修改的 rust 文件进行编译,就比较快了。
  
  另,经笔者测试,高主频型 CPU 对这种日常编译帮助较多。~

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值