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