4 ms·
I don't understand what you are saying. I'm saying it is slower on docker due to container startup, pulling images, overheads, working out what incantations to
by cjk2 2y ago
I don't understand what you are saying.
I'm saying it is slower on docker due to container startup, pulling images, overheads, working out what incantations to run, filesystem access, network weirdness, things talking to other things, configuration required, pull limits, API tokens, all sorts.
Versus "go run"
- immibis 2y agoBut usually it's not "considerably". Obviously setting up the container environment takes time but it should be well under a second per build.
- rfoo 2y agoWow! You are right! Running go build on host instead of container is 1.16 times faster! A whopping 435ms difference! Amazing! /tmp/gitea $ hyperfine -p 'go clean -cache' 'make backend' 'docker run --rm -v $PWD:/build -v $HOME/.go:/go -w /build golang:1.22.3 make backend' Benchmark #1: make backend Time (mean ± σ): 2.766 s ± 0.021 s [User: 8.429 s, System: 1.590 s] Range (min … max): 2.732 s … 2.800 s 10 runs Benchmark #2: docker run --rm -v $PWD:/build -v $HOME/.go:/go -w /build golang:1.22.3 make backend Time (mean ± σ): 3.201 s ± 0.034 s [User: 9.9 ms, System: 7.7 ms] Range (min … max): 3.135 s … 3.235 s 10 runs Summary 'make backend' ran 1.16 ± 0.01 times faster than 'docker run --rm -v $PWD:/build -v $HOME/.go:/go -w /build golang:1.22.3 make backend' (For incremental build, tested with `hyperfine --warmup 1 'make backend' 'docker run --rm -v $PWD:/build -v $HOME/.go:/go -v $HOME/.cache/go-build:/root/.cache/go-build -w /build golang:1.22.3 make backend'` it's 812.9 ms vs 1.146s.)