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.1665087647.txt.gz · Last modified: 2022/10/06 20:20 by asie