首页 > 解决方案 > 如何使用多个内核编译单个 crate?

问题描述

我有一个单独的板条箱,里面只有大约 10k 行结构和枚举。

在我的 MacBook Pro 2.8Ghz 双核上运行需要 10 到 60 秒。

我使用了另一个具有 16 个内核、3.5Ghz 的 Linux VM,但编译时间大致相同——它似乎只使用了一个内核。

我应该使用某些标志或工作区配置吗?

可以将代码拆分为多个 crates,但是类型之间的依赖循环意味着我只需要包含所有其他工作区 crates 类型use workspace::crate-x::*- 这仍然会缩短编译时间吗?

启用缓存但在单个 crate 中不发生缓存的工作空间是什么?

我不希望仅仅为了启用货物构建缓存而将我的代码分成任意块。

此外,根据https://pingcap.com/blog/rust-huge-compilation-units,您只能在单个 crate 中包含循环类型,因为 crate-crate 导入必须形成 DAG。所以这意味着我不能在不破坏循环依赖的情况下将我的单个 crate 拆分为多个 crate?

在此处输入图像描述

标签: rust

解决方案


推荐阅读