I just compiled "zed" with "cargo build --release" and not only did it pull >2000 dependencies, its size (executable file) is literally 1.4G. Debug is 1.2G.
$ pwd
/tmp/zed/target/release
$ ls -lh ./zed
-rwx------ 2 john john 1.4G Aug 28 17:10 zed
---
$ dut zed/ | sort -h
598M 0B | | /- webrtc-sys-0a11149cbc74bc90
598M 0B | | | /- out
598M 0B | | |- webrtc-sys-090125d01b76a5e8
635M 160M | | /- s-hal7osjfce-1h7vhjb-4bdtrsk93m145adnqs17i9dxe
635M 160M | | |- project-06kh4lhaqfutk
641M 161M | | /- project-1ulvakop54j8y
641M 161M | | | /- s-hal5rdrth3-0j8nxqq-d0wsc7qnin39797z4e8ibhj4w
1.1G 1.1G | | /- zed-ed67419e7a858570
1.1G 1.1G | |- zed
1.3G 1.3G | /- zed-64b9faeefdf3b7df
1.3G 1.3G |- zed
1.4G 0B |- build
2.2G 0B | |- build
7.9G 1.4G /- deps
9.4G 0B |- release
14G 2.9G | |- incremental
19G 4.2G | /- deps
33G 0B /- debug
42G 0B /- target
42G 0B zed
Summary:
$ du -h ./target/debug/deps/
20G ./target/debug/deps/
$ du -h ./target/release/deps/
8.0G ./target/release/deps/
$ du -h ./target/debug/zed
1.2G ./target/debug/zed
$ du -h ./target/release/zed
1.4G ./target/release/zed
This is on a whole new level of bloat; both with regarding to dependencies AND the resulting executable file(s) (EDIT: executable files are unstripped).
Any explanations as to why "cargo" does not seem to re-use libraries (dependencies) in a shared directory, or why it needs >2000 dependencies (that I see being downloaded and compiled), or why the executable file of the release mode is 1.4G unstripped while of the debug one it is less?
Any explanations as to why "cargo" does not seem to re-use libraries (dependencies) in a shared directory, or why it needs >2000 dependencies (that I see being downloaded and compiled), or why the executable file of the release mode is 1.4G unstripped while of the debug one it is less?