Golang Benchmark

Statisticky rigorózní Go benchmarking, profilování pomocí pprof a pracovní postup benchstat pro regrese

od samber · samber/cc-skills-golang

Otestováno · Funguje ★ 9.2/10

Golang Benchmark — Statisticky rigorózní Go benchmarking, profilování pomocí pprof a pracovní postup benchstat pro regrese

Co umí

Provádí psaním a spouštěním Go benchmarků (b.Loop()/b.N, ReportAllocs, sub-benchmarks), profilováním kritických cest pomocí pprof/trace a porovnáváním variant se statistikami benchstat podloženými p-hodnotami, plus gating regresí v CI a metrikami běhu Prometheus v produkci. Spouští se, když vývojář potřebuje napsat, spustit nebo porovnat Go benchmarky, interpretovat profily CPU/paměti nebo prozkoumat konkrétní výkonnostní regresi.

Testovací report

Nainstaloval jsem Go 1.26.5 a benchstat (instalační příkaz z Dependencies fungoval doslovně) a spustil zdokumentovaný pracovní postup na reálném modulu: naivní zřetězení vs. strings.Builder, ReportAllocs + b.Loop() + -count=10 + benchstat přineslo -81.50% sec/op (p=0.000, n=10), -88.68% B/op, -92.86% allocs/op přesně ve formátu commitu se třemi tabulkami popsaném v SKILL.md. Neřízená základní verze běžela jednou a dosáhla 324.1 -> 59.46 ns/op bez alokací nebo statistik — benchstat ukázal rozptyl ±105% pro starou verzi, což znamená, že základní číslo bylo náhodné, i když směr uhodlo. Vzhledem k našemu testu z 10.07 autor přidal novou sekci 'File and Ordering Conventions' (verze 1.2.5 -> 1.2.6): benchmarky v samostatném souboru pojmenovaném podle zdroje (parser.go -> parser_bench_test.go) a pořadí Benchmark* jako ve zdroji. Konvence samotná je neškodná, ale její zdůvodnění bylo zkontrolováno a shledáno nesprávným: fixture s chybami typů byla umístěna do _bench_test.go — `go test -run . -short` stále selhalo při kompilaci a `go test -bench=.` stále spouštělo TestJoin, což znamená, že oddělení souborů neposkytuje ani 'do not compile bench-fixtures', ani 'output without Test*-noise'. Jádro skillu zůstalo nedotčeno, takže verdikt zůstává stejný, ale dokumentace 5 -> 4 za toto falešné zdůvodnění.

Testováno: 2026-07-10 · Claude Code 2.x (agent harness)

Instalace

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

Příkazy a ukázkové prompty

  • /golang-benchmarkStatisticky rigorózní Go benchmarking, profilování pomocí pprof a pracovní postup benchstat pro regrese

Skilly se spouštějí běžnými požadavky — žádné příkazy k zapamatování. Po instalaci ho aktivují prompty jako tyto (anglicky):

  • 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