< 返回版块

lithbitren 发表于 2023-03-18 01:18

就是类似于脚本级别的编译效率,检查完语法合法性就开始逐行运行的那种。

现在遇到个小项目,几分钟十几分钟就得编译一次,每次编译在几十秒到两三分钟不等(debug下也没快到哪去,有时候甚至不如直接release快),勉强可以接受但还是觉得费劲。

但如果能秒编译执行结果就好了,执行效率慢100倍都可以接受,等结果符合预期最终定案后再release编译。

之前好像见过有一些rust脚本的项目,但教程不太清晰,怎么弄都弄不明白,也不知道是不是能达到这么方便的编译效率。

评论区

写评论
elsejj 2023-03-19 08:10

升级硬件是唯一的解决方案,SSD是最基本的,其他的包括

  • 使用内存作为存储
  • 使用更快的链接器,比如 mold

在某些场景会有一些提升,但都不算大

参考 https://www.reddit.com/r/rust/comments/qgi421/doing_m1_macbook_pro_m1_max_64gb_compile/

对比我自己的机器,以编译 https://github.com/sharkdp/bat 为例

完全编译(Release) 完全编译(Debug) 修改编译(Debug)
M1 Max 43
M1 Pro 46
M1 Air 83
9750H 58 24 3
13700K 26 7 0.55
hackers267 2023-03-19 07:53

要做脚本,为什么不试试脚本类的语言?Python,Deno,Node或Ruby

作者 lithbitren 2023-03-19 00:32

把项目拷到了固态上,试了下其中一个编译,比在机械盘上从1m12s降到59s,比原来好点,不过也就那样了。。

作者 lithbitren 2023-03-18 23:59

所以正常编译速度应该是多少,跟cpu的单核性能睿频性能,总性能有多大关系。

在固态上开了个空项目,有println就5秒,没有就3秒,确实快了啊。。。

不过机子短时间也换不了,也就这样了。。

作者 lithbitren 2023-03-18 23:47

好吧,我都不知道固态会影响编译速度,我的项目是放在机械硬盘里的。。

--
👇
Mike Tang: 非常低,哈哈。

--
👇
lithbitren: 我这空开新项目6-7秒编译时间,不知道算什么水平。

感觉playground比我这快不少,可惜项目不可能真放上面编译。

Mike Tang 2023-03-18 23:26

非常低,哈哈。

--
👇
lithbitren: 我这空开新项目6-7秒编译时间,不知道算什么水平。

感觉playground比我这快不少,可惜项目不可能真放上面编译。

作者 lithbitren 2023-03-18 23:20

我这空开新项目6-7秒编译时间,不知道算什么水平。

感觉playground比我这快不少,可惜项目不可能真放上面编译。

c5soft 2023-03-18 22:29

上13代的i9,多插条,用最快的固态,别无他法

github.com/shanliu/lsys 2023-03-18 21:46

感觉编译器估计难有改善 哎 跟cpp一样 慢成翔

Pikachu 2023-03-18 19:31

cranelift有宣传说编译速度更快。

之前mold也说可以大幅度提升链接速度。

sccache可以帮助避免一部分重复编译。

以上方法我只尝试过sccache,效果有限,因为debug模式本身就已经是增量编译了。其它的两个只听说过,但是因为都是实验性的项目,所以还没尝试。

作者 lithbitren 2023-03-18 15:50

因为要多次初步验证某些复杂的玄学算法,所以必须要简单运行初步判断demo的运行结果。

已经拆分了,最多也就降到二三十秒,但也不是每次都能降这么多。

--
👇
Mike Tang: 1. cargo check而不是cargo build

  1. 多分几个crate
  2. 为啥要几分钟编译一次,你一次可以多写几行代码 3.准备个水杯,不太大那种,编译的时候起来接水
Mike Tang 2023-03-18 08:53
  1. cargo check而不是cargo build
  2. 多分几个crate
  3. 为啥要几分钟编译一次,你一次可以多写几行代码 3.准备个水杯,不太大那种,编译的时候起来接水
1 共 12 条评论, 1 页