随随便便写几行代码,拉几个依赖一编译,分分钟两三 G 没了。
大项目更是恐怖,substrate 编译后 42G ,cargo clean 后 42 兆。
家目录下的 .cargo 和 .rustup 用一段时间也能分别占用十多个 G ,
500G 硬盘很容易就不够用了,看来以后再买电脑得 1T 起步了。
1
novolunt 152 天前
golang ,npm ,pip 也有这个问题吧,确实多。
反正这些我都会跑,然后就不够了 |
2
Alias4ck 152 天前
你说的随随便便是写一个 hello world 还是写一个 application
|
![]() |
3
PureWhiteWu 152 天前 ![]() 写 Rust ,现在电脑配置是 2T SSD
|
![]() |
4
f6x 152 天前 ![]() 空间换时间, 空间换效率. 你换不换?
我换. |
5
7zlid 152 天前 via Android
利好傲腾
可惜傲腾已经入土了 |
6
xinhaiw 152 天前
4tb m1
|
![]() |
7
Mohanson 152 天前
Rust 稍大些的项目 cargo build 一下几十 G 洒洒水
|
![]() |
8
liyang5945 152 天前 ![]() |
![]() |
9
imes 152 天前 ![]() |
![]() |
10
agagega 152 天前
为什么会这么大?还是说原生编译语言都这样,C++项目的中间文件也不小的。当然 Rust 有时候确实离谱
|
![]() |
11
imzcg2 152 天前
cargo install cargo-cache
安装后 只能 cargo cache -a 来不时清理一下啦 |
![]() |
12
gam2046 152 天前
我觉得现代语言都有这毛病
node_modules .gradle .mvn gopath (go get) 等等 只要多编译几个项目,什么工具链都能下回来一大堆缓存 |
![]() |
13
DonkeyBenjamin 152 天前
如果这能让你不去学 rust ,我是赞同的
|
14
aloxaf 152 天前 ![]() 统一 target 目录 + 定时清理 + btrfs 透明压缩,可以为你省不少空间和时间
|
![]() |
15
ihciah 152 天前
大项目关 debug info 能省一点
|
![]() |
17
yyfearth 152 天前
@7c00 不够 因为透明压缩是压缩每个文件 并不会去重 或者固实压缩 对于巨量的小文件 对磁盘占用贡献不大
文件小文件太小 就算压缩后大小减半 还是会占用整块的磁盘空间 其实应该把这些放到一个统一的 cache/image fs 里面 里面默认去重压缩 而且对小文件要有优化才能解决这个问题 另外有些(比如 yarn2 )支持不解压 tgz 文件 直接用虚拟 FS 直接 on the fly 读取 tgz 里面的文件 这样就会好很多 但是会慢 兼容性也会出问题 |
![]() |
18
ZeroDu 152 天前
java 这边 maven 还好;库都是公用的;开发体验上虽然不占硬盘,但是占内存
|
19
7c00 152 天前
@yyfearth 但这里的 rust 编译产物并不是 nodejs 那种零碎的小文件,在我这里,透明压缩效果非常显著,du 109G 但 df 只有 53G ,不过我这里不做 rust 开发而是做 web 和 android 。
|
![]() |
20
FightPig 152 天前
我电脑里 node_modules 占的最多,上回清理了几十 g 出来 ,主要还都是些小文件,现在改用 pnpm 好些了
|
![]() |
21
adminone 152 天前
substrate 你 build 时没看快上千个包嘛
|
22
7c00 152 天前
@ZeroDu java web 可能还好,android 开发不容乐观,我这里 ~/.gradle 8.6G ,还没多少个项目,而且很多时候初始化项目前我刻意改过 gradle-wrapper.properties ,不然基本上每个项目都用不同版本的 gradle ,每个几百 MB ,多跑几个 demo 又用掉几个 G
|
![]() |
23
darkengine 152 天前
Xcode 笑而不语
|
24
zhuweiyou 152 天前
4 楼说的对
|
25
MrKrabs 152 天前
ssd+雷电硬盘盒没多少钱
|
![]() |
26
knowckx 152 天前
假如依赖包先后发布 v1.1 v1.2 v1.3
我们更新依赖升级版本到 v1.3,但是之前本地留下的 v1.1 和 v1.2 的包内容并不会被清理掉 |
27
pinylin 152 天前
第三次 推荐 kondo
|
29
haolongsun 152 天前
就这? npm 表示小意思
|
![]() |
30
israinbow 152 天前 via Android
最近用 tauri 做软件,体验 nodejs + rust 之一个页面两个按钮的但页面应用,依赖 8 个 Gb 。
|
![]() |
31
ClericPy 152 天前
看到前面提到都这样, 想起 Windows 默认把各路缓存放 user 目录里真特娘烦死, 备份个 C 盘有 20 多 GB 是各路包管理器和 linter 缓存, 清都清不过来, chrome 也乱七八糟往里扔, 真当 user 目录是垃圾桶了
|
![]() |
33
ClericPy 152 天前
@u823tg 我意思是如果都放一个特定前缀的也行, 实在是到处乱放, mypy 的 cache 清的我手都软了, 如果各类软件协商都放 user 下面的 .cache 之类的目录, 我备份时候直接跳过去了...
|
![]() |
34
yuekcc 152 天前 ![]() |
36
Jtyczc 152 天前
这么恐怖的吗
|
38
oksbsb 152 天前
内存盘 + cargo config 统一配置 target 目录。
|
![]() |
40
Nugine0 151 天前 via Android
rust 不会自动清除无用的编译产物,要定期删掉 target 。
一些编译设置(高等级优化,增量编译,lto 等)会保存额外的中间信息。 debug 和 release 会产生两遍编译产物,有的 c/c++绑定会下载两遍预编译文件,没事可以删删 target/debug 。 交叉编译时对每个目标平台分别编译,有多少个就乘几倍…… 有工具(sccache)可以跨工作区复用编译产物。上面有人说的透明压缩也能缓解。 rust 默认全部静态链接,手动设成动态链接可以减少中间产物体积,不过既麻烦又对泛型没用。 rust 的包管理和 nodejs 一样鼓励复用,导致动不动上百个间接依赖,也是膨胀得很厉害。 |
![]() |
41
vite 151 天前
观望, 这么看 rust 是个超越 npm 的黑洞?
|
![]() |
42
cmdOptionKana 151 天前
Go 在性能与资源消耗方面真的平衡得很好,工具链给人的感觉很轻,没有笨重的感觉,编译速度如闪电。
|
![]() |
43
chuanqirenwu 151 天前
rust-analyzer 占内存也是飞起。
|
![]() |
44
12101111 151 天前
设置 CARGO_TARGET_DIR
|
45
junkun 151 天前
@agagega 就是中间文件。但是 rust 比 C++ 会更严重一点,因为 rust 大多数依赖都是源码分发,所以依赖都要编译,产生中间文件。好处是不会像 C++ 老是有链接、符号错误。
|
46
acctv2 151 天前
Modern 语言要用 Modern 硬件编程(
|
47
kice 150 天前 via Android
我感觉这个地球上的包管理软件都是以只编译 /部署一个项目到一台机器为准。
杂七杂八的东西堆一起几百 G 就没了。 pip 相对来说好一些,只是 cudnn 占地方之外。 还是不要包管理的好,麻烦是麻烦了点,但是省钱。 |
48
k1263 125 天前
大佬在研究 substrate 嘛?这个框架前景怎么样?我看 OneBlock 最近在开 substrate 训练营,99 很便宜,就是不知道靠谱不靠谱,怕浪费时间。
|