发现 Rust 的 target 比 node_modules 还离谱

156 天前
 yaott2020

今天用 Rust 开发,无意间发现 target 文件夹居然占用了近 20GB ,真的被吓到,这比 node_modules 。

5648 次点击
所在节点    程序员
44 条回复
yuhangch
156 天前
空间换时间(不是
povsister
156 天前
起码 node build 比 rust 快(不是
l1xnan
156 天前
我这一个项目长时间没有清理,飙到了 97GB🤣
diagnostics
156 天前
推特看别人吐槽过,1TB 的 mac 里面 200 多 g 是它,穷人干不了 rust 开发
encro
156 天前
哈哈,少些几个目标 target 吧,如非必要。
fioncat
156 天前
太真实了哈哈哈哈隔。
作为一个 Rust 开发,我已经把硬盘从 500G 加到 1T 了,你们呢?

另外记得定期 cargo clean
nulIptr
156 天前
前几年我试了一下 tauri 的 hello world 一行代码不写好像是 9g ,不知道现在咋样
wjx0912
156 天前
rust,node ,都是硬盘杀手
sigoden
156 天前
推荐一个用于清理项目依赖和构建的工具: https://github.com/sigoden/projclean
fuis
156 天前
所有的项目可以构建到同一个 target 目录下

https://doc.rust-lang.org/cargo/reference/config.html#buildtarget-dir
wu67
156 天前
质疑 node_modules
理解 node_modules
成为 node_modules
超越 node_modules
...
dbskcnc
156 天前
rust 确实占用不少,刚编译了下 zed editor,target 也是 19g 多了
zzhaolei
156 天前
cargo clean 没用,你只要 build ,就还会下载回来,反而麻烦了
sampeng
156 天前
说的好像 java 的 maven 库时间长了不大一样= =!只是没 rust 大。

其实这几年的语言的包管理逻辑都差太多,rust ,golang ,nodejs 。。都是把源代码完全拉过来。

问题是 rust 和 node 的最大差异是编译是真的慢。。很久之前看 PingCAP 的介绍,他们编译一次半天起步。。。给整崩溃了。
kneo
156 天前
卧龙凤雏,tauri 都有。
povsister
156 天前
@sampeng 不得不说,虽然都喷 go complier 的代码效率低编译优化差,但 go 团队坚持不牺牲编译速度真的是爽太多了。
k8s 那种项目找个 8c 机器,不 regen 代码+冷启的情况下也就几分钟,有编译缓存后改改代码再编译就是十几秒的事,太爽了。
araraloren
156 天前
你也可以设置 CARGO_TARGET_DIR 改成一个单独的编译目录,但是会失去灵活性。
没有稳定的 ABI 是这样的,源码是现拉的,中间生成产物也是现编的,所以 target 会相当大,
如果提前把库提前安装好或者用其他手段共享一些编译结果,就会好很多。
cosette
156 天前
编译不仅占用磁盘,也占用内存,这就是 rust 。隔断时间 cargo clean 一下,编译的文件会累加的,release/debug ,包括更新依赖等等会越来越大。
kenvix
156 天前
@sampeng #13 java 是也是够地狱的,不同版本的 gradle 都会重新下一遍依赖库
FightPig
156 天前
我现在都统一放在一个目录,要不到处去清理,1t 小硬盘顶不住

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1051537

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX