Golang Benchmark
Statistiskt rigorös Go-benchmarking, pprof-profilering och benchstat-regressionsarbetsflöde
Testad · Fungerar
Vad den gör
Vägleder skrivning och körning av Go-benchmarks (b.Loop()/b.N, ReportAllocs, sub-benchmarks), profilering av hot paths med pprof/trace, och jämförelse av varianter med benchstats p-värdesbaserade statistik, plus CI-regressionsgranskning och Prometheus-körtidsmått i produktion. Utlöses när en utvecklare behöver skriva, köra eller jämföra Go-benchmarks, tolka CPU/minnesprofiler eller undersöka en specifik prestandaregression.
Testrapport
Installerade Go 1.26.5 och benchstat (installationskommandot från Dependencies fungerade ordagrant) och körde det dokumenterade arbetsflödet på en riktig modul: naiv konkatenering vs. strings.Builder, ReportAllocs + b.Loop() + -count=10 + benchstat gav -81.50% sec/op (p=0.000, n=10), -88.68% B/op, -92.86% allocs/op exakt i det tre-tabells commit-format som beskrivs i SKILL.md. Den ohanterade baslinjen kördes en gång och fick 324.1 -> 59.46 ns/op utan allokeringar eller statistik — benchstat visade en ±105% spridning för den gamla versionen, vilket betyder att baslinjenumret var slumpmässigt, även om det gissade riktningen. Relativt vårt 10.07-test lade författaren till en ny 'File and Ordering Conventions' sektion (version 1.2.5 -> 1.2.6): benchmarks i en separat fil namngiven efter källan (parser.go -> parser_bench_test.go) och Benchmark*-ordning som i källan. Konventionen i sig är harmlös, men dess motivering kontrollerades och befanns vara felaktig: en fixture med typfel placerades i _bench_test.go — `go test -run . -short` misslyckades fortfarande med kompilering, och `go test -bench=.` körde fortfarande TestJoin, vilket betyder att filseparering varken ger 'kompilera inte bench-fixtures' eller 'utdata utan Test*-brus'. Skillens kärna är orörd, så domen förblir densamma, men docs 5 -> 4 för denna falska motivering.
Testad: 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
Kommandon och exempelprompter
/golang-benchmarkStatistiskt rigorös Go-benchmarking, pprof-profilering och benchstat-regressionsarbetsflöde
Skills triggas av vanliga förfrågningar — inga kommandon att memorera. Efter installationen aktiverar prompter som dessa skillen (på engelska):
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