mirror of
https://github.com/Crocmagnon/go-binary-size.git
synced 2024-12-22 06:01:50 +01:00
add readme
This commit is contained in:
parent
3be271a320
commit
141376130f
2 changed files with 15 additions and 4 deletions
11
README.md
Normal file
11
README.md
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
# go-binary-size
|
||||||
|
This repo is companion to an article published here (TODO add link).
|
||||||
|
|
||||||
|
Contents :
|
||||||
|
* `app`: a Go module intended as an "application" (vs library) with 4 packages compilable as single binaries
|
||||||
|
* `a`, `a2` and `b` depend exclusively on matching packages from `mod1`
|
||||||
|
* `control` depends only on stdlib's `fmt` and is used as a control for what a small Go binary can weigh
|
||||||
|
* `mod1`: a Go module intended to represent a library that `app` would include. It contains 3 packages:
|
||||||
|
* `a`: depends on a large external dependency (`github.com/gin-gonic/gin`) in the "normal" files and also depends on some other external dependencies exclusively used in the test files, whether in the same package or in the `a_test` package.
|
||||||
|
* `a2`: same as `a` but doesn't contain test files, to show that test dependencies don't bloat the built binary
|
||||||
|
* `b`: depends only on `fmt`
|
|
@ -1,8 +1,8 @@
|
||||||
.PHONY: build
|
.PHONY: build
|
||||||
build:
|
build:
|
||||||
GOARCH=amd64 go build -o ./dist/a ./a
|
GOARCH=amd64 GOOS=darwin go build -o ./dist/a ./a
|
||||||
GOARCH=amd64 go build -o ./dist/a2 ./a2
|
GOARCH=amd64 GOOS=darwin go build -o ./dist/a2 ./a2
|
||||||
GOARCH=amd64 go build -o ./dist/b ./b
|
GOARCH=amd64 GOOS=darwin go build -o ./dist/b ./b
|
||||||
GOARCH=amd64 go build -o ./dist/control ./control
|
GOARCH=amd64 GOOS=darwin go build -o ./dist/control ./control
|
||||||
ls -al ./dist
|
ls -al ./dist
|
||||||
shasum -a 256 ./dist/*
|
shasum -a 256 ./dist/*
|
||||||
|
|
Loading…
Reference in a new issue