Golang Benchmark

Statistisch rigoureuze Go benchmarking, pprof profiling en benchstat regressieworkflow

Door samber · samber/cc-skills-golang

Getest · Werkt ★ 9.2/10

Golang Benchmark — Statistisch rigoureuze Go benchmarking, pprof profiling en benchstat regressieworkflow

Wat het doet

Begeleidt het schrijven en uitvoeren van Go benchmarks (b.Loop()/b.N, ReportAllocs, sub-benchmarks), het profileren van hot paths met pprof/trace, en het vergelijken van varianten met benchstat's p-waarde-ondersteunde statistieken, plus CI regressiebeveiliging en productie Prometheus runtime metrics. Activeert wanneer een ontwikkelaar Go benchmarks moet schrijven, uitvoeren of vergelijken, CPU/geheugenprofielen moet interpreteren, of een specifieke performantieregressie moet onderzoeken.

Testrapport

Go 1.26.5 en benchstat geïnstalleerd (installatiecommando van Dependencies werkte woordelijk) en de gedocumenteerde workflow uitgevoerd op een echte module: naïeve concatenatie versus strings.Builder, ReportAllocs + b.Loop() + -count=10 + benchstat leverde -81.50% sec/op (p=0.000, n=10), -88.68% B/op, -92.86% allocs/op op, precies in het drie-tabel commit-formaat zoals beschreven in SKILL.md. De onbeheerde baseline draaide één keer en kreeg 324.1 -> 59.46 ns/op zonder allocaties of statistieken — benchstat toonde een spreiding van ±105% voor de oude versie, wat betekende dat het baseline-nummer willekeurig was, hoewel het de richting raadde. Relatief aan onze 10.07 test, voegde de auteur een nieuwe sectie 'File and Ordering Conventions' toe (versie 1.2.5 -> 1.2.6): benchmarks in een apart bestand genoemd naar de bron (parser.go -> parser_bench_test.go) en Benchmark* volgorde zoals in de bron. De conventie zelf is onschadelijk, maar de rechtvaardiging ervan werd gecontroleerd en onjuist bevonden: een fixture met typefouten werd in _bench_test.go geplaatst — `go test -run . -short` faalde nog steeds bij compilatie, en `go test -bench=.` draaide nog steeds TestJoin, wat betekent dat bestandsscheiding noch 'compileer bench-fixtures niet' noch 'output zonder Test*-ruis' biedt. De kern van de skill is onaangetast, dus het oordeel blijft hetzelfde, maar docs 5 -> 4 voor deze valse rechtvaardiging.

Getest op: 2026-07-10 · Claude Code 2.x (agent harness)

Installatie

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

Commando's en voorbeeldprompts

  • /golang-benchmarkStatistisch rigoureuze Go benchmarking, pprof profiling en benchstat regressieworkflow

Skills reageren op gewone verzoeken — geen commando's om te onthouden. Na installatie activeren prompts zoals deze de skill (in het Engels):

  • Write a Go benchmark for this hot function using b.Loop
  • Compare these two benchmark variants with benchstat
  • Profile this Go service's CPU usage with pprof