Back to list
IvanTorresEdge

benchmarking

by IvanTorresEdge

0🍴 1📅 Jan 13, 2026

SKILL.md


name: benchmarking description: Performance benchmarking techniques and analysis. Use when measuring performance.

Benchmarking Skill

Performance benchmarking techniques for Go.

When to Use

Use when measuring or comparing performance.

Writing Benchmarks

func BenchmarkGetUser(b *testing.B) {
    svc := NewService()
    ctx := context.Background()

    b.ResetTimer()
    for i := 0; i < b.N; i++ {
        _, _ = svc.GetUser(ctx, 1)
    }
}

Running Benchmarks

# Run all benchmarks
go test -bench=. -benchmem ./...

# Specific benchmark
go test -bench=BenchmarkGetUser -benchmem

# Multiple runs for accuracy
go test -bench=. -benchmem -count=10

Analyzing Results

BenchmarkGetUser-8    1000000    1250 ns/op    320 B/op    5 allocs/op
  • 1000000 - iterations
  • 1250 ns/op - time per operation
  • 320 B/op - bytes allocated
  • 5 allocs/op - allocations per operation

Comparing with benchstat

go test -bench=. -count=10 > old.txt
# make changes
go test -bench=. -count=10 > new.txt
benchstat old.txt new.txt

Best Practices

  • Use b.ResetTimer() after setup
  • Run multiple times (-count)
  • Use benchstat for comparison
  • Focus on allocations
  • Profile to understand results

Score

Total Score

60/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon