Compared to 1.22, binary sizes of most toolchain binaries has increased significantly:
$ lh go1.22/go/pkg/tool/linux_amd64
total 85M
-rwxr-x--- 1 mpratt primarygroup 2.4M May 30 15:26 addr2line
-rwxr-x--- 1 mpratt primarygroup 3.7M May 30 15:26 asm
-rwxr-x--- 1 mpratt primarygroup 1.9M May 30 15:26 buildid
-rwxr-x--- 1 mpratt primarygroup 3.6M May 30 15:26 cgo
-rwxr-x--- 1 mpratt primarygroup 19M May 30 15:26 compile
-rwxr-x--- 1 mpratt primarygroup 2.4M May 30 15:26 covdata
-rwxr-x--- 1 mpratt primarygroup 4.1M May 30 15:26 cover
-rwxr-x--- 1 mpratt primarygroup 3.0M May 30 15:26 doc
-rwxr-x--- 1 mpratt primarygroup 2.5M May 30 15:26 fix
-rwxr-x--- 1 mpratt primarygroup 5.1M May 30 15:26 link
-rwxr-x--- 1 mpratt primarygroup 2.3M May 30 15:26 nm
-rwxr-x--- 1 mpratt primarygroup 3.4M May 30 15:26 objdump
-rwxr-x--- 1 mpratt primarygroup 1.6M May 30 15:26 pack
-rwxr-x--- 1 mpratt primarygroup 12M May 30 15:26 pprof
-rwxr-x--- 1 mpratt primarygroup 2.0M May 30 15:26 test2json
-rwxr-x--- 1 mpratt primarygroup 12M May 30 15:26 trace
-rwxr-x--- 1 mpratt primarygroup 5.9M May 30 15:26 vet
$ lh go1.23/go/pkg/tool/linux_amd64
total 159M
-rwxr-x--- 1 mpratt primarygroup 7.1M Jun 20 15:20 addr2line
-rwxr-x--- 1 mpratt primarygroup 8.3M Jun 20 15:20 asm
-rwxr-x--- 1 mpratt primarygroup 6.5M Jun 20 15:20 buildid
-rwxr-x--- 1 mpratt primarygroup 7.7M Jun 20 15:20 cgo
-rwxr-x--- 1 mpratt primarygroup 23M Jun 20 15:20 compile
-rwxr-x--- 1 mpratt primarygroup 6.8M Jun 20 15:20 covdata
-rwxr-x--- 1 mpratt primarygroup 8.4M Jun 20 15:20 cover
-rwxr-x--- 1 mpratt primarygroup 7.2M Jun 20 15:20 doc
-rwxr-x--- 1 mpratt primarygroup 7.0M Jun 20 15:20 fix
-rwxr-x--- 1 mpratt primarygroup 9.0M Jun 20 15:20 link
-rwxr-x--- 1 mpratt primarygroup 7.0M Jun 20 15:20 nm
-rwxr-x--- 1 mpratt primarygroup 7.7M Jun 20 15:20 objdump
-rwxr-x--- 1 mpratt primarygroup 6.3M Jun 20 15:20 pack
-rwxr-x--- 1 mpratt primarygroup 12M Jun 20 15:20 pprof
-rwxr-x--- 1 mpratt primarygroup 6.4M Jun 20 15:20 preprofile
-rwxr-x--- 1 mpratt primarygroup 6.3M Jun 20 15:20 test2json
-rwxr-x--- 1 mpratt primarygroup 13M Jun 20 15:20 trace
-rwxr-x--- 1 mpratt primarygroup 11M Jun 20 15:20 vet
It looks like this is due to too much of x/telemetry appearing reachable to the compile when it actually isn't reachable at runtime.
cc @matloob
Comment From: gabyhelp
Similar Issues
- all: understand binary size changes vs 1.14 #38694
- cmd/compile: 1.12 compiler needs double the memory than 1.11 #32089
- cmd/link: compress debug info on windows #25927
- runtime: TestGcSys "using too much memory" on AArch64, Fedora 33 #45847
(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)
Comment From: gopherbot
Change https://go.dev/cl/593976 mentions this issue: cmd/internal: seprate counter package from telemetry package
Comment From: gopherbot
Change https://go.dev/cl/594015 mentions this issue: cmd/vendor: pull in golang.org/x/telemetry@b4de734
Comment From: gopherbot
Change https://go.dev/cl/594019 mentions this issue: [release-branch.go1.23] cmd/vendor: pull in golang.org/x/telemetry@b4de734
Comment From: gopherbot
Change https://go.dev/cl/594020 mentions this issue: [release-branch.go1.23] cmd/internal: separate counter package from telemetry package
Comment From: matloob
Here are my numbers from my machine to compare the results of the change I just submitted:
The increases are far less but each of the files seem to be about a half megabyte bigger
release-branch.go1.22:
-rwxr-xr-x 1 matloob primarygroup 2.5M Jun 21 17:31 addr2line
-rwxr-xr-x 1 matloob primarygroup 3.8M Jun 21 17:31 asm
-rwxr-xr-x 1 matloob primarygroup 1.9M Jun 21 17:31 buildid
-rwxr-xr-x 1 matloob primarygroup 3.5M Jun 21 17:31 cgo
-rwxr-xr-x 1 matloob primarygroup 18M Jun 21 17:31 compile
-rwxr-xr-x 1 matloob primarygroup 2.3M Jun 21 17:31 covdata
-rwxr-xr-x 1 matloob primarygroup 4.0M Jun 21 17:31 cover
-rwxr-xr-x 1 matloob primarygroup 2.7M Jun 21 17:31 dist
-rwxr-xr-x 1 matloob primarygroup 2.1M Jun 21 17:31 distpack
-rwxr-xr-x 1 matloob primarygroup 2.9M Jun 21 17:31 doc
-rwxr-xr-x 1 matloob primarygroup 2.4M Jun 21 17:31 fix
-rwxr-xr-x 1 matloob primarygroup 5.0M Jun 21 17:31 link
-rwxr-xr-x 1 matloob primarygroup 2.4M Jun 21 17:31 nm
-rwxr-xr-x 1 matloob primarygroup 3.4M Jun 21 17:31 objdump
-rwxr-xr-x 1 matloob primarygroup 1.6M Jun 21 17:31 pack
-rwxr-xr-x 1 matloob primarygroup 11M Jun 21 17:31 pprof
-rwxr-xr-x 1 matloob primarygroup 1.9M Jun 21 17:31 test2json
-rwxr-xr-x 1 matloob primarygroup 11M Jun 21 17:31 trace
-rwxr-xr-x 1 matloob primarygroup 5.7M Jun 21 17:31 vet
release-branch.go1.23 with CLs 594019, 594020 and 594021 cherry picked in:
$ ls -lh pkg/tool/darwin_arm64/
total 204520
-rwxr-xr-x 1 matloob primarygroup 3.0M Jun 21 17:14 addr2line
-rwxr-xr-x 1 matloob primarygroup 4.3M Jun 21 17:14 asm
-rwxr-xr-x 1 matloob primarygroup 2.5M Jun 21 17:14 buildid
-rwxr-xr-x 1 matloob primarygroup 3.8M Jun 21 17:14 cgo
-rwxr-xr-x 1 matloob primarygroup 18M Jun 21 17:14 compile
-rwxr-xr-x 1 matloob primarygroup 2.8M Jun 21 17:14 covdata
-rwxr-xr-x 1 matloob primarygroup 4.3M Jun 21 17:14 cover
-rwxr-xr-x 1 matloob primarygroup 2.8M Jun 21 17:14 dist
-rwxr-xr-x 1 matloob primarygroup 2.6M Jun 21 17:14 distpack
-rwxr-xr-x 1 matloob primarygroup 3.2M Jun 21 17:14 doc
-rwxr-xr-x 1 matloob primarygroup 2.9M Jun 21 17:14 fix
-rwxr-xr-x 1 matloob primarygroup 5.3M Jun 21 17:14 link
-rwxr-xr-x 1 matloob primarygroup 3.0M Jun 21 17:14 nm
-rwxr-xr-x 1 matloob primarygroup 3.8M Jun 21 17:14 objdump
-rwxr-xr-x 1 matloob primarygroup 2.2M Jun 21 17:14 pack
-rwxr-xr-x 1 matloob primarygroup 12M Jun 21 17:14 pprof
-rwxr-xr-x 1 matloob primarygroup 2.3M Jun 21 17:14 preprofile
-rwxr-xr-x 1 matloob primarygroup 2.4M Jun 21 17:14 test2json
-rwxr-xr-x 1 matloob primarygroup 12M Jun 21 17:14 trace
-rwxr-xr-x 1 matloob primarygroup 6.8M Jun 21 17:14 vet
Comment From: gopherbot
Change https://go.dev/cl/594335 mentions this issue: internal/telemetry: avoid use of x/mod/module.IsPseudoVersion
Comment From: gopherbot
Change https://go.dev/cl/593684 mentions this issue: cmd/vendor: vendor x/telemetry@38a4430
Comment From: matloob
Here are numbers from my machine to compare the results after Hana's change:
The increases are down to .2-.4 megabytes for most binaries
go1.22.4:
ls -lh pkg/tool/darwin_arm64
total 181376
-rwxr-xr-x 1 matloob primarygroup 2.5M Jun 21 17:46 addr2line
-rwxr-xr-x 1 matloob primarygroup 3.8M Jun 21 17:46 asm
-rwxr-xr-x 1 matloob primarygroup 1.9M Jun 21 17:46 buildid
-rwxr-xr-x 1 matloob primarygroup 3.5M Jun 21 17:46 cgo
-rwxr-xr-x 1 matloob primarygroup 18M Jun 21 17:46 compile
-rwxr-xr-x 1 matloob primarygroup 2.3M Jun 21 17:46 covdata
-rwxr-xr-x 1 matloob primarygroup 4.0M Jun 21 17:46 cover
-rwxr-xr-x 1 matloob primarygroup 2.7M Jun 21 17:46 dist
-rwxr-xr-x 1 matloob primarygroup 2.1M Jun 21 17:46 distpack
-rwxr-xr-x 1 matloob primarygroup 2.9M Jun 21 17:46 doc
-rwxr-xr-x 1 matloob primarygroup 2.4M Jun 21 17:46 fix
-rwxr-xr-x 1 matloob primarygroup 5.0M Jun 21 17:46 link
-rwxr-xr-x 1 matloob primarygroup 2.4M Jun 21 17:46 nm
-rwxr-xr-x 1 matloob primarygroup 3.4M Jun 21 17:46 objdump
-rwxr-xr-x 1 matloob primarygroup 1.6M Jun 21 17:46 pack
-rwxr-xr-x 1 matloob primarygroup 11M Jun 21 17:46 pprof
-rwxr-xr-x 1 matloob primarygroup 1.9M Jun 21 17:46 test2json
-rwxr-xr-x 1 matloob primarygroup 11M Jun 21 17:46 trace
-rwxr-xr-x 1 matloob primarygroup 5.7M Jun 21 17:46 vet
release-branch.go1.23 with CLs 594015, 593976, 594017, and 593684 cherry picked in:
ls -lh pkg/tool/darwin_arm64
total 199032
-rwxr-xr-x 1 matloob primarygroup 2.7M Jun 24 14:55 addr2line
-rwxr-xr-x 1 matloob primarygroup 4.0M Jun 24 14:55 asm
-rwxr-xr-x 1 matloob primarygroup 2.2M Jun 24 14:55 buildid
-rwxr-xr-x 1 matloob primarygroup 3.8M Jun 24 14:55 cgo
-rwxr-xr-x 1 matloob primarygroup 18M Jun 24 14:55 compile
-rwxr-xr-x 1 matloob primarygroup 2.8M Jun 24 14:55 covdata
-rwxr-xr-x 1 matloob primarygroup 4.3M Jun 24 14:55 cover
-rwxr-xr-x 1 matloob primarygroup 2.8M Jun 24 14:55 dist
-rwxr-xr-x 1 matloob primarygroup 2.3M Jun 24 14:55 distpack
-rwxr-xr-x 1 matloob primarygroup 3.2M Jun 24 14:55 doc
-rwxr-xr-x 1 matloob primarygroup 2.7M Jun 24 14:55 fix
-rwxr-xr-x 1 matloob primarygroup 5.3M Jun 24 14:55 link
-rwxr-xr-x 1 matloob primarygroup 2.7M Jun 24 14:55 nm
-rwxr-xr-x 1 matloob primarygroup 3.8M Jun 24 14:55 objdump
-rwxr-xr-x 1 matloob primarygroup 1.9M Jun 24 14:55 pack
-rwxr-xr-x 1 matloob primarygroup 12M Jun 24 14:55 pprof
-rwxr-xr-x 1 matloob primarygroup 2.0M Jun 24 14:55 preprofile
-rwxr-xr-x 1 matloob primarygroup 2.2M Jun 24 14:55 test2json
-rwxr-xr-x 1 matloob primarygroup 12M Jun 24 14:55 trace
-rwxr-xr-x 1 matloob primarygroup 6.8M Jun 24 14:55 vet
Looking at cmd/buildid most of the differences in the symbols seem reasonable to me
Comment From: matloob
Closing this issue. The unintended binary size increases have been addressed.