Golang Benchmark
Statistisch rigoroses Go-Benchmarking, pprof-Profiling und benchstat-Regressions-Workflow
Getestet · Funktioniert
Was es kann
Anleitung zum Schreiben und Ausführen von Go-Benchmarks (b.Loop()/b.N, ReportAllocs, Sub-Benchmarks), Profiling von Hot Paths mit pprof/trace und Vergleichen von Varianten mit benchstat's p-Wert-gestützten Statistiken, plus CI-Regressions-Gating und Prometheus-Laufzeitmetriken für die Produktion. Wird ausgelöst, wenn ein Entwickler Go-Benchmarks schreiben, ausführen oder vergleichen, CPU-/Speicherprofile interpretieren oder eine spezifische Performance-Regression untersuchen muss.
Testbericht
Go 1.26.5 und benchstat installiert (Installationsbefehl aus Dependencies funktionierte wortgetreu) und den dokumentierten Workflow an einem realen Modul ausgeführt: naive Verkettung vs. strings.Builder, ReportAllocs + b.Loop() + -count=10 + benchstat ergab -81.50% sec/op (p=0.000, n=10), -88.68% B/op, -92.86% allocs/op genau im Drei-Tabellen-Commit-Format, wie in SKILL.md beschrieben. Die ungesteuerte Baseline lief einmal und erreichte 324.1 -> 59.46 ns/op ohne Allokationen oder Statistiken — benchstat zeigte eine Streuung von ±105% für die alte Version, was bedeutet, dass die Baseline-Zahl zufällig war, obwohl sie die Richtung erraten hat. Bezogen auf unseren 10.07-Test fügte der Autor einen neuen Abschnitt 'File and Ordering Conventions' hinzu (Version 1.2.5 -> 1.2.6): Benchmarks in einer separaten Datei, benannt nach der Quelle (parser.go -> parser_bench_test.go) und Benchmark*-Reihenfolge wie in der Quelle. Die Konvention selbst ist harmlos, aber ihre Begründung wurde überprüft und als falsch befunden: eine Fixture mit Typfehlern wurde in _bench_test.go platziert — `go test -run . -short` schlug immer noch bei der Kompilierung fehl, und `go test -bench=.` führte immer noch TestJoin aus, was bedeutet, dass die Dateitrennung weder 'Bench-Fixtures nicht kompilieren' noch 'Ausgabe ohne Test*-Rauschen' bietet. Der Kern des Skills ist unberührt, daher bleibt das Urteil dasselbe, aber die Dokumentation 5 -> 4 für diese falsche Begründung.
Getestet am: 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
Befehle & Beispiel-Prompts
/golang-benchmarkStatistisch rigoroses Go-Benchmarking, pprof-Profiling und benchstat-Regressions-Workflow
Skills reagieren auf normale Anfragen — keine Slash-Befehle nötig. Nach der Installation aktivieren Prompts wie diese den Skill (auf Englisch):
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