Binary snippets for fast compilation Go projects that will increase your free time in 5x times.
Just compile your project without linking. This binary is suitable only for on-save hooks in your favorite editor.
Build project only if source code has been changed. This binary is suitable for daily usage, it's must have binary for integration tests that run on save.
for x in `seq 1 20`; do time go build; done 2>&1 | awk '{ x += sprintf("%f", $9); } END { printf x/NR; }'
for x in `seq 1 20`; do time go-fast-compile; done 2>&1 | awk '{ x += sprintf("%f", $8); } END { printf x/NR; }'
project | go build | go-fast-compile | profit |
---|---|---|---|
orgalorg, 2789 lines | 2.343 |
0.826 |
3x faster |
shadowc, 960 lines | 2.011 |
0.456 |
5x faster |
manul, 502 lines | 1.558 |
0.267 |
7x faster |
Arch Linux (god bless you) users can install package go-fast from AUR:
https://aur.archlinux.org/packages/go-fast/
other distros:
$ git clone https://github.com/kovetskiy/go-fast
$ cd go-fast
$ sudo make install
Of course go-fast's stuff works as go build binary and all passed variables will be passed to Go.