prevent aggressive DCE in MWE w/ TinyGo and cull fmt package (#196)

* cull fmt package use and prevent aggressive DCE in MWE example with TinyGo

* add noslog build tag and small reference section to README

* add memci

* fix ci

* whoops, forgot memci.json to gitignore

* whoops x2

* use noslog build tag

* don't go ham on removing fmt useful data

* remove old benchmarking CI
This commit is contained in:
Pat Whittingslow
2026-09-06 17:17:14 -03:00
committed by GitHub
parent d219daa2c4
commit d7f3924489
24 changed files with 306 additions and 220 deletions
+11 -28
View File
@@ -100,38 +100,21 @@ jobs:
- name: Test (race + shuffle)
run: go test -race -shuffle=on -count=1 -timeout=10m ./...
benchmark:
memci:
needs: [test]
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: "1.26"
- name: Run benchmarks
run: go test -bench=. -benchmem -count=5 -shuffle=on -run='^$' -timeout=15m ./... | tee bench-results.txt
- name: Generate benchmark report
run: |
go run ./internal/benchci -current bench-results.txt -out bench-report.md
cat bench-report.md >> "$GITHUB_STEP_SUMMARY"
- name: Upload generated benchmark report
if: github.event_name == 'pull_request'
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
# Needed because a build command in memci.json names tinygo. Keep the two
# versions in step: TinyGo 0.42 builds with Go 1.25 through 1.27 and
# refuses to run outside that window, in either direction.
- uses: acifani/setup-tinygo@v2
with:
name: bench-report
path: bench-report.md
retention-days: 30
- name: Upload raw benchmark results
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
tinygo-version: "0.42.0"
- uses: soypat/memci@main
with:
name: bench-results
path: bench-results.txt
retention-days: 30
args: -kind package
targets: .github/workflows/memci.json