Golang Benchmark
Statistisk stringent Go-benchmarking, pprof-profilering og benchstat-regressionsworkflow
Testet · Virker
Hvad det gør
Vejleder i at skrive og køre Go-benchmarks (b.Loop()/b.N, ReportAllocs, sub-benchmarks), profilere 'hot paths' med pprof/trace og sammenligne varianter med benchstats p-værdi-understøttede statistik, plus CI-regressionskontrol og Prometheus-runtime-metrics i produktion. Udløses når en udvikler skal skrive, køre eller sammenligne Go-benchmarks, fortolke CPU-/hukommelsesprofiler eller undersøge en specifik ydelsesregression.
Testrapport
Installerede Go 1.26.5 og benchstat (installationskommandoen fra Dependencies fungerede ordret) og kørte den dokumenterede workflow på et rigtigt modul: naiv sammenkædning vs. strings.Builder, ReportAllocs + b.Loop() + -count=10 + benchstat gav -81.50% sek/op (p=0.000, n=10), -88.68% B/op, -92.86% allocs/op præcis i det tre-tabel commit-format beskrevet i SKILL.md. Den uadministrerede baseline kørte én gang og fik 324.1 -> 59.46 ns/op uden allokeringer eller statistik — benchstat viste en ±105% spredning for den gamle version, hvilket betyder, at baseline-nummeret var tilfældigt, selvom det gættede retningen. Relativt til vores 10.07 test tilføjede forfatteren en ny 'File and Ordering Conventions' sektion (version 1.2.5 -> 1.2.6): benchmarks i en separat fil navngivet efter kilden (parser.go -> parser_bench_test.go) og Benchmark*-rækkefølge som i kilden. Konventionen i sig selv er harmløs, men dens begrundelse blev kontrolleret og fundet forkert: en fixture med typefejl blev placeret i _bench_test.go — `go test -run . -short` mislykkedes stadig kompilering, og `go test -bench=.` kørte stadig TestJoin, hvilket betyder, at filseparation hverken giver 'kompiler ikke bench-fixtures' eller 'output uden Test*-støj'. Skillens kerne er uberørt, så dommen forbliver den samme, men docs 5 -> 4 for denne falske begrundelse.
Testet: 2026-07-10 · Claude Code 2.x (agent harness)
Installation
git clone https://github.com/samber/cc-skills-golang.git mkdir -p ~/.claude/skills cd cc-skills-golang && cp -r skills/golang-benchmark ~/.claude/skills/golang-benchmark
Kommandoer og eksempelprompter
/golang-benchmarkStatistisk stringent Go-benchmarking, pprof-profilering og benchstat-regressionsworkflow
Skills udløses af almindelige forespørgsler — ingen kommandoer at huske. Efter installationen aktiverer prompter som disse skillen (på engelsk):
Write a Go benchmark for this hot function using b.LoopCompare these two benchmark variants with benchstatProfile this Go service's CPU usage with pprof