Token导航 LogoToken导航TokenDH.com
研究检索执行命令github未标认证来源可访问许可证需确认审计通过

perfperf 搜索

Agent Skill

perf 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

665

周安装

28

GitHub Stars

321

下载量

233
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:perf(perf 搜索)
来源仓库:https://github.com/boshu2/agentops
仓库路径:skills/perf
安装命令:
npx skills add https://github.com/boshu2/agentops --skill perf
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/boshu2/agentops --skill perf

简介

perf 用于性能剖析、基准测试与回归检测,输出可执行指标。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中对任意语言运行时优化。
  • 支持 /perf profile、bench、compare、optimize 四种模式。
  • 所有操作均产生量化结果,而非模糊建议,便于决策参考。
  • perf 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Perf Skill

Quick Ref: /perf profile <target> | /perf bench <target> | /perf compare <baseline> <candidate> | /perf optimize <target>

YOU MUST EXECUTE THIS WORKFLOW. Do not just describe it.

Performance profiling, benchmarking, regression detection, and optimization recommendations for any language runtime. Produces actionable metrics, not vague advice.

Modes

ModeCommandPurpose
Profile/perf profile <target>Profile execution, find hotspots
Benchmark/perf bench <target>Create or run benchmarks
Compare/perf compare <baseline> <candidate>Compare two runs for regression
Optimize/perf optimize <target>Analyze and apply optimizations

If no mode is specified, default to profile.


Step 0: Detect Language and Tooling

Identify the language/runtime from file extensions, go.mod, package.json, pyproject.toml, Cargo.toml, or explicit user input. Select the profiling stack:

LanguageBenchmarkingCPU ProfileMemory ProfileComparison
Gogo test -benchgo tool pprof (cpu)go tool pprof (alloc)benchstat
Pythonpytest-benchmark, timeitcProfile, py-spymemory_profiler, tracemallocmanual diff
Nodebenchmark.js, vitest bench--prof, clinic.js--heap-prof, 0xmanual diff
Rustcriterion, cargo benchcargo flamegraphheaptrack, DHATcritcmp
Shellhyperfinetime, straceN/Ahyperfine built-in

Check which tools are actually installed. If a preferred tool is missing, fall back to standard-library alternatives before asking the user to install anything.


Step 1: Establish Baseline

Run existing benchmarks first. If none exist, create them.

1a. Find Existing Benchmarks

# Go
grep -r "func Benchmark" --include="*_test.go" -l .

# Python
find . -name "test_*" -exec grep -l "benchmark\|@pytest.mark.benchmark" {} +

# Rust
grep -r "#\[bench\]" --include="*.rs" -l .

# Node
find . -name "*.bench.*" -o -name "*.benchmark.*"

1b. Run or Create Benchmarks

If benchmarks exist for the target, run them and capture output. If none exist, write benchmarks covering the target function or module.

Benchmark requirements:

  • Measure wall-clock time (ops/sec or ns/op)
  • Measure memory allocations (bytes/op, allocs/op)
  • Run enough iterations for statistical stability (Go: -benchtime=3s -count=5)
  • Record latency percentiles where applicable: p50, p95, p99

Save raw baseline output to .agents/perf/baseline-YYYY-MM-DD.txt.

1c. Go Benchmark Template

func BenchmarkTargetFunction(b *testing.B) {
    // Setup outside the loop
    input := prepareInput()
    b.ResetTimer()
    b.ReportAllocs()
    for i := 0; i < b.N; i++ {
        TargetFunction(input)
    }
}

1d. Python Benchmark Template

import pytest

@pytest.mark.benchmark(group="target")
def test_target_benchmark(benchmark):
    input_data = prepare_input()
    result = benchmark(target_function, input_data)
    assert result is not None

Step 2: Profile and Identify Hotspots

CPU Profiling

Find functions consuming the most CPU time.

Go:

go test -bench=BenchmarkTarget -cpuprofile=cpu.prof ./...
go tool pprof -top cpu.prof
go tool pprof -text -cum cpu.prof   # cumulative view

Python:

python -m cProfile -s cumulative target_script.py
# Or for running processes:
py-spy top --pid <PID>
py-spy record -o profile.svg --pid <PID>

Memory Profiling

Find allocation hotspots and potential leaks.

Go:

go test -bench=BenchmarkTarget -memprofile=mem.prof ./...
go tool pprof -top -alloc_space mem.prof

Python:

python -m memory_profiler target_script.py
# Or with tracemalloc in code:
# tracemalloc.start(); ...; snapshot = tracemalloc.take_snapshot()

I/O Profiling

Identify blocking operations in hot paths.

  • Check for synchronous file I/O, network calls, or database queries inside loops.
  • Look for missing connection pooling, unbuffered writes, or serial HTTP calls that could be concurrent.

Hotspot Summary

After profiling, produce a ranked list:

HOTSPOTS (by cumulative CPU time):
1. pkg/engine.Process       42.3%  (1.2s)   — main processing loop
2. pkg/engine.parseRecord   28.1%  (0.8s)   — record deserialization
3. pkg/io.ReadBatch         15.7%  (0.45s)  — disk reads

Step 3: Analyze and Recommend

Classify each finding by estimated impact:

ImpactCriteriaAction
High>20% of total time or >50% of allocationsFix immediately
Medium5-20% of total time or notable allocation wasteFix in this session
Low<5% of total time, minor inefficiencyLog for later

Common Anti-Patterns

Check the profiled code against these known performance killers:

  1. Unnecessary allocations — allocating inside hot loops, string concatenation in loops (use strings.Builder / []byte / io.StringWriter)
  2. N+1 queries — database call per item instead of batch query
  3. Missing caching — recomputing expensive results that rarely change
  4. Blocking I/O in hot path — synchronous network/disk calls where async or buffered I/O would work
  5. Excessive copying — passing large structs by value, copying slices instead of slicing
  6. Suboptimal data structures — linear search where a map lookup works, unbounded slice growth without pre-allocation
  7. Lock contention — mutex held across I/O or long computation
  8. Regex compilation in loops — compile once, reuse the compiled pattern
  9. Reflection in hot paths — replace with code generation or type switches
  10. Unbuffered channels — causing goroutine scheduling overhead in Go

For each finding, state:

  • What: the specific code location and pattern
  • Why: how it hurts performance (with numbers from profiling)
  • Fix: concrete code change recommendation

Step 4: Optimize (optimize mode only)

Critical rule: ONE optimization at a time.

For each optimization:

  1. Describe the change before making it
  2. Apply the single change
  3. Re-run the benchmark suite
  4. Compare results against baseline using benchstat (Go) or manual diff
  5. Keep or revert — only keep changes that measurably improve metrics
  6. Commit with message format: perf(<scope>): <description> (+X% throughput) or perf(<scope>): <description> (-X% latency)

Acceptance Criteria

  • Improvement must be statistically significant (p < 0.05 for benchstat, or >5% consistent change for manual comparison)
  • No correctness regressions — all existing tests must still pass
  • No readability destruction for marginal gains (<2% improvement does not justify obfuscated code)

Optimization Order

Apply optimizations in this order (highest expected impact first):

  1. Algorithmic improvements (O(n^2) to O(n log n), etc.)
  2. Allocation reduction (pre-allocate, pool, reuse buffers)
  3. I/O batching and buffering
  4. Caching and memoization
  5. Concurrency improvements (parallelize independent work)
  6. Micro-optimizations (only if profiling confirms they matter)

Step 5: Output Report

Write the report to .agents/perf/YYYY-MM-DD-perf-<target>.md.

Report Template

# Performance Report: <target>
Date: YYYY-MM-DD
Mode: <profile|bench|compare|optimize>
Language: <detected>

## Summary
<1-2 sentence summary of findings>

## Baseline Metrics
| Metric | Value |
|--------|-------|
| ops/sec | ... |
| ns/op | ... |
| B/op | ... |
| allocs/op | ... |
| p50 latency | ... |
| p95 latency | ... |
| p99 latency | ... |

## Hotspots
<ranked list from Step 2>

## Findings
<classified findings from Step 3>

## Optimizations Applied (if optimize mode)
| Change | Before | After | Improvement |
|--------|--------|-------|-------------|
| ... | ... | ... | +X% |

## After Metrics (if optimize mode)
<same table as baseline, with new values>

## Recommendations
<remaining opportunities not addressed in this session>

Compare Mode Details

When running /perf compare <baseline> <candidate>:

  1. Locate or re-run benchmarks for both versions
  2. Use language-native comparison tools:

- Go: benchstat baseline.txt candidate.txt - Rust: critcmp baseline candidate - Other: side-by-side table with percentage deltas

  1. Flag regressions (>5% slower or >10% more allocations) as REGRESSION
  2. Flag improvements (>5% faster or >10% fewer allocations) as IMPROVEMENT
  3. Flag statistically insignificant changes as NOISE

Output a summary table:

COMPARISON: baseline vs candidate
| Benchmark | Baseline | Candidate | Delta | Verdict |
|-----------|----------|-----------|-------|---------|
| BenchmarkProcess | 1.2ms | 0.9ms | -25% | IMPROVEMENT |
| BenchmarkParse | 450ns | 480ns | +6.7% | REGRESSION |
| BenchmarkIO | 3.1ms | 3.0ms | -3.2% | NOISE |

Edge Cases

  • No benchmarks and no clear target: Run /complexity first to identify hot paths, then benchmark those.
  • Flaky benchmarks: Increase iteration count, pin to a single core (GOMAXPROCS=1), close competing processes.
  • Cannot install profiling tools: Fall back to time for wall-clock and manual instrumentation for allocation counts.
  • Target is a CLI command: Use hyperfine for wall-clock benchmarking across any language.

See Also

  • complexity — Find high-complexity code to target
  • standards — Language-specific optimization patterns
  • vibe — Validate optimized code quality

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

34.66%
按下载量换算81

Claude

27.55%
按下载量换算64

Cursor

18.57%
按下载量换算43

Gemini CLI

9.6%
按下载量换算22

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

执行命令

安装流程涉及命令执行,可能通过 npx skills add https://github.com/boshu2/agentops --skill perf 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills