golang ikilileri niye bu kadar büyük? nasıl küçültürüm?

Go(golang) ile "Merhaba Dünya" dedin ve derlediğinde( go build hello.go ) gözlerini inanamadın. 1.8Mb içinde acaba ne var dedin.

Hata ayıklama bilgileri olmadan derle go build -ldflags "-s" hello.go yarı yarıya düştü bak 0.9Mb.


Hala düşünüyorsun ne var bunun içinde? fmt paketi birçok özelliği olan büyük bir paket. Sadece ekrana yazı basacağım diyorsan, fmt yi kaldır. fmt.Println yerine yerleşik fonksiyonlardan, println kullan. 0.25Mb oldu bak.

Sıkıştır
  • 7z -> 0.075Mb
  • UPX ve goupx -> 0.1Mb
UPX, ikili çalıştıralabilir dosyalarını sıkıştırıyor. Kurulumu sudo apt-get install upx-ucl
goupx, golang fixi GOPATH=${PWD}/env go get github.com/pwaller/goupx/

go build -ldflags "-s" hello.go
cd env/bin/
./goupx hello