今天用 Rust 开发,无意间发现 target 文件夹居然占用了近 20GB ,真的被吓到,这比 node_modules 。
1
yuhangch 188 天前
空间换时间(不是
|
2
povsister 188 天前 1
起码 node build 比 rust 快(不是
|
3
l1xnan 188 天前
我这一个项目长时间没有清理,飙到了 97GB🤣
|
4
diagnostics 188 天前 1
推特看别人吐槽过,1TB 的 mac 里面 200 多 g 是它,穷人干不了 rust 开发
|
5
encro 188 天前
哈哈,少些几个目标 target 吧,如非必要。
|
6
fioncat 188 天前
太真实了哈哈哈哈隔。
作为一个 Rust 开发,我已经把硬盘从 500G 加到 1T 了,你们呢? 另外记得定期 cargo clean |
7
nulIptr 188 天前
前几年我试了一下 tauri 的 hello world 一行代码不写好像是 9g ,不知道现在咋样
|
8
wjx0912 188 天前
rust,node ,都是硬盘杀手
|
9
sigoden 188 天前 2
推荐一个用于清理项目依赖和构建的工具: https://github.com/sigoden/projclean
|
10
fuis 188 天前 6
|
11
wu67 188 天前 12
质疑 node_modules
理解 node_modules 成为 node_modules 超越 node_modules ... |
12
dbskcnc 188 天前
rust 确实占用不少,刚编译了下 zed editor,target 也是 19g 多了
|
13
zzhaolei 188 天前
cargo clean 没用,你只要 build ,就还会下载回来,反而麻烦了
|
14
sampeng 188 天前
说的好像 java 的 maven 库时间长了不大一样= =!只是没 rust 大。
其实这几年的语言的包管理逻辑都差太多,rust ,golang ,nodejs 。。都是把源代码完全拉过来。 问题是 rust 和 node 的最大差异是编译是真的慢。。很久之前看 PingCAP 的介绍,他们编译一次半天起步。。。给整崩溃了。 |
15
kneo 188 天前 via Android 2
卧龙凤雏,tauri 都有。
|
16
povsister 188 天前
@sampeng 不得不说,虽然都喷 go complier 的代码效率低编译优化差,但 go 团队坚持不牺牲编译速度真的是爽太多了。
k8s 那种项目找个 8c 机器,不 regen 代码+冷启的情况下也就几分钟,有编译缓存后改改代码再编译就是十几秒的事,太爽了。 |
17
araraloren 188 天前
你也可以设置 CARGO_TARGET_DIR 改成一个单独的编译目录,但是会失去灵活性。
没有稳定的 ABI 是这样的,源码是现拉的,中间生成产物也是现编的,所以 target 会相当大, 如果提前把库提前安装好或者用其他手段共享一些编译结果,就会好很多。 |
18
cosette 188 天前
编译不仅占用磁盘,也占用内存,这就是 rust 。隔断时间 cargo clean 一下,编译的文件会累加的,release/debug ,包括更新依赖等等会越来越大。
|
20
FightPig 188 天前
我现在都统一放在一个目录,要不到处去清理,1t 小硬盘顶不住
|
21
qingshui33 188 天前 1
各位大哥,Rust 怎么才能入门,来来回回的,一直在门外徘徊 😂
|
22
viger 188 天前
感觉 Rust 这么语言太会整花活,整了一堆东西;
一直做加法,加法,加法; 难怪学习曲线那么陡. 我认为一个好的语言,是要去平衡各方面; 啥都想要的,最后都会让人望而却步; |
23
CHTuring 188 天前 via iPhone 1
@qingshui33 我也挺好奇,我都已经入门三次了,过段时间就出门。
|
24
solos 188 天前
rust 至少性能好 node_modules 那是些啥
|
25
FightPig 188 天前
@qingshui33 写一个项目就行了,我进进出出七八回,终于在去年把一个 go 项目改成 rust 后有了点思路了,后面写起来就比原来一点摸不到头脑好很多
|
26
agagega 188 天前 via iPhone
从头开始编译是这样的,感觉后面搞个类似 pnpm 一样的 cache 会很有用
|
28
yidinghe 188 天前 via Android
理解 Maven ,学习 Maven ,……最终还是比不上 Maven 。
|
29
SayHelloHi 187 天前
使用 npkill 清理出来 30G 硬盘空间~~
|
30
sunnysab 187 天前
如果某个库的版本升级了,旧的编译产物不会删除。定期 cargo clean 即可。
|
32
Daniel17 187 天前
我引入了一个 rocket ,一个 sqlx ,一个 chrono ,一个 dotenv ,build 之后 target 3 个 G
|
33
Ocean810975 187 天前
@qingshui33 #21
国人写的那个 rust 圣经,我觉得比官方教程直接汉化要好,可以看看,有配套练习和几个小项目,总之就是多写嘛。 不过我觉得拿 rust 写算法题刷 leetcode 对提升 rust 水平不大,这点可能和其他人讲的有所区别。rust 难也不是难在算法实现上了,没必要折磨自己。 |
35
uni 187 天前
记得编译一个 substrate 出来 107g 吓死我哈哈,而且某个版本刚出来的时候还遇到了编译器 bug= =
|
36
knightdf 187 天前
我 mac 的 1T 可用空间只有 26G 了我说什么了。哈哈,这玩意确实离谱,删了更慢不删更大
|
37
buf1024 187 天前
直接或间接引入的 crate 太多了,每个直接或间接 crate 都要编译一次,任何一种语言都有这个问题。
如果不想 target 太大,唯一的解决办法就是重新发明轮子,像 c 语言一样,大多数库都自己写,这样保证你的 target 很小很小。 |
38
artiga033 187 天前 via Android
写 rust 是让我觉得 btrfs 这类 cow 和透明压缩的文件系统最有用的时候
|
39
xgdgsc 187 天前 via Android
建议再加个 julia ,一起吃硬盘
|
40
capgrey 187 天前
之前构建一个小软件,target 文件夹 一个多 GB....
|
41
james122333 187 天前 via Android
这是 rust 除了编译速度额外操点
浪费你时间和资源的垃圾工具+1 |
42
Hantong 187 天前 3
@Ocean810975 同意. 我个人不是科班出身, 拿 Rust 入的门, 然后因为参与维护了一个安卓项目, 从学习大佬的代码开始学会了 Kotlin, 后面才补课的 C, 现在因为自己的小项目用到略接触到 Go. Python, JavaScript or TypeScript 也会写一点. 我会的这些语言里面最擅长也最喜欢的就是 Rust, 其次是 Kotlin.
记得 This Week in Rust 分享了一篇文章关于如何加速编译的, 我试用后感受明显, 虽然最有用的那个把 linker 改成 Mold 只支持 Linux 平台, 改 codegen backend 为 cranelift 不支持 WoA(这个影响也不大), 不支持 SIMD, 不支持 unwinding on panics(这个影响蛮大, 不过可以单开个 build 配置继承 release 配置, 把 debug 打开啥的, 专用于测试版本构建). po 个链接供参考: https://blog.rust.careers/post/compile_rust_faster/ |
43
bjfane 186 天前
不是有调侃 rust 是硬盘杀手的么,哈哈哈。
|
44
skuuhui 185 天前
把 target 目录改到 nas 上
|