Disable share generics to reduce the binary size more (#64335)
After the new macOS nightly with https://github.com/zed-industries/zed/pull/64260 arrived, I've noticed that the binary had actually bloated back — run some bisecting and build comparison, and seems that the shared generics are the culprit. Platform / executable | Sharing enabled | Sharing disabled/default | Reduction | |---|---:|---:|---:| | macOS ARM64 editor | 304,794,488 bytes | 266,242,792 bytes | **38,551,696 bytes / 12.65%** | | Linux x86_64 editor | 334,001,336 bytes | 325,916,104 bytes | **8,085,232 bytes / 2.42%** | | Linux x86_64 remote server | 123,618,032 bytes | 106,211,592 bytes | **17,406,440 bytes / 14.08%** Each pair uses the same checkout and Rust **1.98.1**, was built with the bundling script: - macOS: `e0590874fd`, measured after `strip -x`. - Linux: `b664a4004269`, measured after `llvm-objcopy --strip-debug --discard-all`. The Linux section changes when disabling sharing are: | Component | Editor | Remote server | |---|---:|---:| | Retained `.symtab` + `.strtab` | **−47,560,049 bytes** | **−17,733,989 bytes** | | Allocated file-backed sections | +39,475,120 bytes | +327,448 bytes | | Headers, padding, and other bytes | −303 bytes | +101 bytes | | **Total** | **−8,085,232 bytes** | **−17,406,440 bytes** | Release Notes: - N/A
This commit is contained in:
1 parent
2229b4e2d6
commit
87d3b5fdfd
1 file changed
-6
@@ -1,9 +1,3 @@
|
||||
[env]
|
||||
RUSTC_BOOTSTRAP = "1"
|
||||
|
||||
[target.'cfg(all())']
|
||||
rustflags = ["-Z", "share-generics=y"]
|
||||
|
||||
[target.'cfg(target_os = "linux")']
|
||||
rustflags = ["-C", "link-args=-Wl,--disable-new-dtags,-rpath,$ORIGIN/../lib"]
|
||||
|
||||
|
||||
Reference in new issue
Block a user