'Passing an optimization flag to a Go compiler?
To compile a Go program you type go build myprogram.go
, can you pass an optimization flags along or the code is always compiled in the same way? I am talking about speed optimizations, code size optimizations or other optimizations.
I know if you use gccgo
you just pass -O2
or -O0
but my question is about an official Go compiler go
.
Solution 1:[1]
Actually no explicit flags, this Go wiki page lists optimizations done by the Go compiler and there was a discussion around this topic in golang-nuts groups.
You can turn off optimization and inlining in Go gc compilers for debugging.
-gcflags '-N -l'
-N
: Disable optimizations-l
: Disable inlining
Solution 2:[2]
If you're looking to optimize the binary size, you can omit the symbol table, debug information and the DWARF symbol table by passing -s
and -w
to the Go linker:
$ go build -o mybinary -ldflags="-s -w" src.go
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Azeem |
Solution 2 | fstanis |