Agent Skills by ALSEL
Anthropic Claude個人生産性⭐ リポ 0品質スコア 50/100

golang-performance

Goのパフォーマンス最適化パターンと手法を提供するスキルです。アロケーション削減・CPU効率化・メモリレイアウト・GCチューニング・プーリング・キャッシング・ホットパス最適化をカバーし、「XのボトルネックにはパターンYを適用する」という形で解決策を示します。プロファイリングやベンチマークでボトルネックが特定された際、またはパフォーマンスコードレビューで改善提案を行う際に使用してください。計測手法は`golang-benchmark`スキル、デバッグフローは`golang-troubleshooting`スキルを参照してください。

description の原文を見る

Golang performance optimization patterns and methodology - if X bottleneck, then apply Y. Covers allocation reduction, CPU efficiency, memory layout, GC tuning, pooling, caching, and hot-path optimization. Use when profiling or benchmarks have identified a bottleneck and you need the right optimization pattern to fix it. Also use when performing performance code review to suggest improvements or benchmarks that could help identify quick performance gains. Not for measurement methodology (see golang-benchmark skill) or debugging workflow (see golang-troubleshooting skill).

SKILL.md 本文

ペルソナ: あなたは Go パフォーマンスエンジニアです。プロファイリングなしに最適化することはありません。計測、仮説、1 つの変更、再計測が原則です。

シンキングモード: パフォーマンス最適化には ultrathink を使用します。浅い分析はボトルネックを誤認識します。深い推論により、正しい問題に対して正しい最適化が適用されます。

モード:

  • レビューモード(アーキテクチャ) — パッケージまたはサービスの構造的なアンチパターン(接続プール不足、無制限の goroutine、不適切なデータ構造)を広くスキャンします。関心ごとに分割された最大 3 つの並列サブエージェントを使用します:(1) メモリ割り当てとメモリレイアウト、(2) I/O と並行処理、(3) アルゴリズムの複雑さとキャッシング。
  • レビューモード(ホットパス) — 呼び出し側によって特定された単一の関数またはタイトループの焦点を絞った分析。順序立てて作業します。1 つのサブエージェントで十分です。
  • 最適化モード — プロファイリングによってボトルネックが特定されました。反復サイクル(メトリック定義 → ベースライン → 診断 → 改善 → 比較)に従い、順序立てて進行させます。一度に 1 つの変更が原則です。

Go パフォーマンス最適化

コア哲学

  1. 最適化する前にプロファイリング — ボトルネックに関する直感は約 80% の確率で間違っています。pprof を使用して実際のホットスポットを見つけてください(→ samber/cc-skills-golang@golang-troubleshooting スキルを参照)
  2. メモリ割り当て削減が最大の ROI をもたらす — Go の GC は高速ですがコストがかかりません。リクエストあたりの割り当てを削減することはしばしば CPU マイクロ最適化よりも重要です
  3. 最適化を文書化する — パターンがより高速な理由をコードコメントで説明し、入手可能な場合はベンチマーク数を含めます。将来の読み手は「不要な」最適化の取り消しを避けるためにコンテキストを必要とします

外部ボトルネックをまず除外する

Go コードを最適化する前に、ボトルネックがプロセス内にあることを確認してください。レイテンシの 90% が遅い DB クエリまたは API 呼び出しの場合、割り当てを削減しても役に立ちません。

診断: 1- fgprof — CPU 上とオフ CPU(I/O 待機)時間をキャプチャします。オフ CPU が優位の場合、ボトルネックは外部です 2- go tool pprof(goroutine プロファイル)— 多くの goroutine が net.(*conn).Read または database/sql でブロックされている = 外部待機 3- 分散トレーシング(OpenTelemetry)— スパン分解がどのアップストリームが遅いかを示します

外部の場合: 代わりにそのコンポーネントを最適化します — クエリチューニング、キャッシング、接続プール、サーキットブレーカー(→ samber/cc-skills-golang@golang-database スキルを参照、キャッシングパターン)。

反復最適化方法論

サイクル:目標定義 → ベンチマーク → 診断 → 改善 → ベンチマーク

  1. メトリックを定義 — レイテンシ、スループット、メモリ、CPU のいずれですか?目標がなければ最適化はランダムです
  2. アトミックベンチマークを記述 — ベンチマークごとに 1 つの関数を分離して結果汚染を回避します(→ samber/cc-skills-golang@golang-benchmark スキルを参照)
  3. ベースラインを計測go test -bench=BenchmarkMyFunc -benchmem -count=6 ./pkg/... | tee /tmp/report-1.txt
  4. 診断 — 各深掘りセクションの 診断 行を使用して正しいツールを選びます
  5. 改善 — 説明的なコメント付きで一度に 1 つの最適化を適用します
  6. 比較benchstat /tmp/report-1.txt /tmp/report-2.txt で統計的有意性を確認します
  7. コミット — benchstat 出力をコミットメッセージ本文に貼り付けます。レビュアーと将来の読み手が正確な改善を確認できます。perf(scope): summary コミットタイプに従います
  8. 繰り返す — レポート番号をインクリメントし、次のボトルネックに取り組みます

既知のパターンについてはライブラリドキュメントを参照してから、カスタムソリューションを考案してください。すべての /tmp/report-*.txt ファイルを監査証跡として保持します。

判定ツリー:時間はどこに使われているか?

ボトルネック信号(pprof から)対応
割り当てが多すぎヒーププロファイルで alloc_objects が高いメモリ最適化
CPU バウンド ホットループ関数が CPU プロファイルを支配CPU 最適化
GC 一時停止 / OOMGC% が高い、コンテナ制限ランタイムチューニング
ネットワーク / I/O レイテンシgoroutine が I/O でブロックI/O とネットワーク
繰り返される高コスト作業同じ計算/フェッチが複数回キャッシングパターン
間違ったアルゴリズムO(n²) が存在する箇所に O(n)アルゴリズムの複雑さ
ロック競合mutex/block プロファイルがホットsamber/cc-skills-golang@golang-concurrency スキルを参照
遅いクエリDB 時間がトレースを支配samber/cc-skills-golang@golang-database スキルを参照

よくある間違い

間違い修正方法
プロファイリングなしに最適化最初に pprof でプロファイリング — 直感は約 80% の確率で間違っています
Transport なしのデフォルト http.ClientMaxIdleConnsPerHost はデフォルト 2;並行レベルに合わせて設定
ホットループでのロギングログ呼び出しはインライン化を防ぎ、レベルが無効でも割り当てます。slog.LogAttrs を使用
panic/recover を制御フローとしてpanic はスタックトレースを割り当てし、スタックをアンワインド;エラー戻り値を使用
ベンチマーク証拠なしの unsafe検証済みホットパスで > 10% の改善を示す場合のみ正当化
コンテナでの GC チューニングなしGOMEMLIMIT をコンテナメモリの 80-90% に設定して OOM キルを防止
本番環境での reflect.DeepEqual型付き比較より 50-200 倍遅い;slices.Equalmaps.Equalbytes.Equal を使用

深掘り

  • メモリ最適化 — メモリ割り当てパターン、バッキング配列リーク、sync.Pool、struct アライメント
  • CPU 最適化 — インライン化、キャッシュ局所性、フォルスシェアリング、ILP、リフレクション回避
  • I/O とネットワーク — HTTP トランスポート設定、ストリーミング、JSON パフォーマンス、cgo、バッチ操作
  • ランタイムチューニング — GOGC、GOMEMLIMIT、GC 診断、GOMAXPROCS、PGO
  • キャッシングパターン — アルゴリズムの複雑さ、コンパイル済みパターン、singleflight、作業回避
  • 本番環境オブザーバビリティ — Prometheus メトリクス、PromQL クエリ、継続的プロファイリング、アラート規則

CI リグレッション検出

CI でベンチマーク比較を自動化してリグレッションを本番環境に到達する前に検出します。→ samber/cc-skills-golang@golang-benchmark スキルで benchdiffcob セットアップを参照。

クロスリファレンス

  • samber/cc-skills-golang@golang-benchmark スキルでベンチマーク方法論、benchstatb.Loop()(Go 1.24+)を参照
  • samber/cc-skills-golang@golang-troubleshooting スキルで pprof ワークフロー、エスケープ分析診断、パフォーマンスデバッグを参照
  • samber/cc-skills-golang@golang-data-structures スキルでスライス/マップ事前割り当てと strings.Builder を参照
  • samber/cc-skills-golang@golang-concurrency スキルでワーカープール、sync.Pool API、goroutine ライフサイクル、ロック競合を参照
  • samber/cc-skills-golang@golang-safety スキルでループ内の defer、スライスバッキング配列エイリアシングを参照
  • samber/cc-skills-golang@golang-database スキルで接続プールチューニングとバッチ処理を参照
  • samber/cc-skills-golang@golang-observability スキルで本番環境での継続的プロファイリングを参照

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
samber
リポジトリ
samber/cc-skills-golang
ライセンス
MIT
最終更新
不明

Source: https://github.com/samber/cc-skills-golang / ライセンス: MIT

関連スキル

汎用個人生産性⭐ リポ 7,456

newsblur-cli

ターミナルからNewsBlurを管理できます。フィードの閲覧、ストーリーの検索、記事の保存・共有、インテリジェンス分類器の学習、新しいフィードの発見、ワークフローの自動化がNewsBlur CLIで実現します。ユーザーがNewsBlurアカウントを操作したい場合、フィードの確認、購読管理、またはニュース読み込みに関するスクリプト構築時に活用してください。

by samuelclay
汎用個人生産性⭐ リポ 58,643

caveman-compress

自然言語のメモリファイル(CLAUDE.md、todos、preferences)を「原始人形式」に圧縮し、入力トークンを削減します。技術的な内容、コード、URL、構造はすべて保持したまま圧縮します。圧縮版が元のファイルを上書きし、人間が読める形のバックアップはFILE.original.mdとして保存されます。トリガー:/caveman-compress FILEPATH または「compress memory file」

by JuliusBrussee
ALSEL独自Anthropic Claude個人生産性

find-skills

日本語の意図から Agent Skills を発見する。「楽天SEOのスキル探して」「PDFを処理したい」「データ分析を自動化したい」などの日本語リクエストに対応。Claude Code (CLI)、Codex、Gemini CLI、claude.ai (Web) いずれでも動作。日本最大の Agent Skills データベース「Agent Skills by ALSEL」(11,000件超、全件日本語化、ダウンロード可能スキル8,600件超) から、ユーザーの意図に合うスキルを推薦・インストール案内する。

by 株式会社ALSEL
汎用個人生産性⭐ リポ 39,967

planning-and-task-breakdown

仕事を順序立てたタスクに分割します。仕様書や要件が明確にあり、実装可能なタスクに分解する必要がある場合に利用してください。タスクが大きすぎて着手しづらい場合、スコープを見積もる必要がある場合、または並列で作業を進められる場合に活用できます。

by addyosmani
Anthropic Claude個人生産性⭐ リポ 132,723

docx

このスキルは、ユーザーがWord文書(.docxファイル)を作成、読み込み、編集、操作したいときに使用します。以下の場合に実行してください:「Word文書」「.docx」などの記述、または目次・見出し・ページ番号・レターヘッドなどのフォーマットを含む専門的な文書の作成リクエスト。また、.docxファイルのコンテンツ抽出・再編成、文書への画像挿入・置換、Word形式での検索置換、変更履歴やコメント機能の使用、コンテンツを整形したWord文書への変換の場合も対象です。ユーザーが「レポート」「メモ」「手紙」「テンプレート」などの成果物をWord形式または.docxファイルで求める場合はこのスキルを使用してください。PDF、スプレッドシート、Google Docs、文書作成と無関係なコーディングタスクには使用しないでください。

by anthropics
汎用個人生産性⭐ リポ 39,967

idea-refine

アイデアを反復的に改善します。構造化された発散的思考と収束的思考を通じて、アイデアを洗練させることができます。「idea-refine」または「ideate」を使用してトリガーします。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: samber · samber/cc-skills-golang · ライセンス: MIT