Golang Benchmark
Workflow de benchmarking Go statistiquement rigoureux, de profilage pprof et de régression benchstat
Testé · Fonctionne
Ce que fait
Guide l'écriture et l'exécution de benchmarks Go (b.Loop()/b.N, ReportAllocs, sous-benchmarks), le profilage des chemins critiques avec pprof/trace, et la comparaison de variantes avec les statistiques basées sur les valeurs p de benchstat, ainsi que le contrôle de régression CI et les métriques d'exécution Prometheus en production. Se déclenche lorsqu'un développeur doit écrire, exécuter ou comparer des benchmarks Go, interpréter des profils CPU/mémoire, ou investiguer une régression de performance spécifique.
Rapport de test
Go 1.26.5 et benchstat installés (commande d'installation des dépendances fonctionnelle verbatim) et workflow documenté exécuté sur un module réel : concaténation naïve vs. strings.Builder, ReportAllocs + b.Loop() + -count=10 + benchstat ont donné -81.50% sec/op (p=0.000, n=10), -88.68% B/op, -92.86% allocs/op exactement au format de commit à trois tables décrit dans SKILL.md. La base de référence non gérée a été exécutée une fois et a donné 324.1 -> 59.46 ns/op sans allocations ni statistiques — benchstat a montré un écart de ±105% pour l'ancienne version, ce qui signifie que le nombre de référence était aléatoire, bien qu'il ait deviné la direction. Par rapport à notre test du 10.07, l'auteur a ajouté une nouvelle section 'File and Ordering Conventions' (version 1.2.5 -> 1.2.6) : benchmarks dans un fichier séparé nommé d'après la source (parser.go -> parser_bench_test.go) et ordre Benchmark* comme dans la source. La convention elle-même est inoffensive, mais sa justification a été vérifiée et jugée incorrecte : un fixture avec des erreurs de type a été placé dans _bench_test.go — `go test -run . -short` a toujours échoué à la compilation, et `go test -bench=.` a toujours exécuté TestJoin, ce qui signifie que la séparation des fichiers ne fournit ni 'do not compile bench-fixtures' ni 'output without Test*-noise'. Le cœur de la compétence est intact, donc le verdict reste le même, mais la documentation passe de 5 à 4 pour cette fausse justification.
Testé le: 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
Commandes et exemples de prompts
/golang-benchmarkWorkflow de benchmarking Go statistiquement rigoureux, de profilage pprof et de régression benchstat
Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :
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