notes:programming:golang_filesize_optimization
This is an old revision of the document!
Table of Contents
Go filesize optimization tricks
Let's assume that you want to use TinyGo, but can't. What tricks can you employ to make your Go file smaller?
Developed as part of WebAssembly ZZT port research - OpenZoo/openzoo-go.
Development
- Check the size of imported packages: https://stackoverflow.com/questions/70764915/how-to-check-the-size-of-packages-linked-into-my-go-code
Compilation
- Add `-trimpath -ldflags=“-s -w”` at the end of the `go build` comamnd to remove/reduce debugging information.
- Replace `go build` with `garble -tiny build` to remove debugging information/stack traces even further. (Install instructions for garble [here](https://github.com/burrowers/garble).)
- For WebAssembly, use `wasm-opt -Oz -o out/openzoo-go-optimized.wasm out/openzoo-go.wasm` to run a separate optimization pass on the WASM binary.
- Use `-gcflags=all=“-B”` to disable bounds checking.
notes/programming/golang_filesize_optimization.1665087618.txt.gz · Last modified: 2022/10/06 20:20 by asie