User Tools

Site Tools


notes:programming:golang_filesize_optimization

This is an old revision of the document!


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

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