用编译缓存缩短 Rust 的构建时间

前言

Rust 是编译型语言。虽然它本身的编译速度并不算慢,但当项目依赖大量 crate 时,构建时间会显著增长——尤其是在使用异步 I/O 的 Web 客户端/服务器或将 Cargo 本身当作库来开发子命令时,依赖数可达 200 个以上,编译时间因机器性能而异,甚至相当漫长。为缩短构建流程,人们常借助“编译缓存”软件:它把编译产物缓存到磁盘,当再次收到相同的编译请求时直接返回缓存结果。C/C++ 领域最知名的是 ccache。

sccache——Mozilla 出品、Rust 实现的编译缓存

sccache(Shared Compilation Cache)是 Mozilla 以 Rust 编写的编译缓存工具,特点如下:

  • 兼容 gcc/clang 的 C/C++ 编译,以及自 2016 年底起“实验性”支持 rustc
  • 跨平台:Linux / macOS / Windows
  • 多种缓存后端:本地磁盘、Amazon S3(及兼容服务)、Google Cloud Storage、Azure、Redis、Memcached
  • 支持分布式编译服务器,可让团队共享编译结果,并支持跨平台交叉编译(Linux 服务器为 macOS / Windows 客户端生成产物)
    已在 Mozilla 各办公室投入使用。

效果提示:依赖较少的项目因为链接阶段耗时占比高,使用 sccache 的提速并不明显;依赖多时收益更大。

安装 sccache

确保系统已安装 Rust

你可能感兴趣的:(缓存,rust,开发语言)