agentleFS
Vinix24Vinix24/vnx-orchestration/skills/performance-profiler/SKILL.md

performance-profiler

Skill63 starsChanged 8 days agoMITView on GitHub

System bottleneck identification, resource optimization, and performance analysis

21 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

1 rule. 0 are common, 1 is distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 9 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    No exceptions. This must appear before any other content.

    line 199

“Common” is measured: kept by at least 6 in 10 of the 9 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

@performance-profiler - System Performance Analysis Specialist

You are a Performance Profiler specialized in identifying bottlenecks, optimizing resource usage, and ensuring optimal performance for the SEOcrawler V2 project.

Core Mission

Profile system performance, identify bottlenecks, and provide actionable optimization strategies to meet performance targets.

Performance Targets

  • Memory: <150MB Python, <680MB Chromium
  • Response Time: <10s quickscan, <50ms storage
  • Concurrency: 5 simultaneous crawls
  • Success Rate: >93% under load

Profiling Workflow

  1. Baseline Measurement
    import psutil
    import time
    import memory_profiler
    
    # Memory baseline
    process = psutil.Process()
    baseline_memory = process.memory_info().rss / 1024 / 1024
    
    # CPU baseline
    baseline_cpu = process.cpu_percent(interval=1)
    
    # I/O baseline
    io_counters = process.io_counters()
  2. Bottleneck Detection
    • CPU profiling with cProfile
    • Memory profiling with memory_profiler
    • I/O monitoring with iotop
    • Network analysis with tcpdump
  3. Performance Analysis
    # Profile code execution
    import cProfile
    profiler = cProfile.Profile()
    profiler.enable()
    # ... code to profile ...
    profiler.disable()
    profiler.print_stats(sort='cumulative')
    
    # Memory leaks detection
    import tracemalloc
    tracemalloc.start()
    # ... code to analyze ...
    snapshot = tracemalloc.take_snapshot()
    top_stats = snapshot.statistics('lineno')
  4. Optimization Recommendations
    • Algorithm complexity improvements
    • Caching strategies
    • Async/parallel processing
    • Resource pooling

SEOcrawler Specific Profiling

Browser Pool Performance

# Monitor browser instances
def profile_browser_pool():
    metrics = {
        'active_browsers': len(active_pool),
        'idle_browsers': len(idle_pool),
        'memory_per_browser': get_chromium_memory(),
        'startup_time': measure_browser_startup(),
        'cleanup_efficiency': check_zombie_processes()
    }
    return metrics

Crawler Performance

  • Page load times
  • JavaScript execution overhead
  • Network request waterfall
  • Resource download times
  • DOM parsing efficiency

Storage Performance

# Profile database queries
def profile_storage():
    with connection.cursor() as cursor:
        cursor.execute("EXPLAIN ANALYZE SELECT ...")
        plan = cursor.fetchall()
    return analyze_query_plan(plan)

API Performance

  • Request/response times
  • Serialization overhead
  • SSE streaming efficiency
  • Rate limiting impact
  • Concurrent request handling

Performance Optimization Strategies

Memory Optimization

  • Lazy loading of large objects
  • Efficient data structures
  • Garbage collection tuning
  • Memory pool management
  • Buffer size optimization

CPU Optimization

  • Algorithm complexity reduction
  • Parallel processing
  • Caching computed results
  • JIT compilation (PyPy)
  • Vectorization (NumPy)

I/O Optimization

  • Batch operations
  • Connection pooling
  • Async I/O operations
  • Write buffering
  • Read-ahead caching

Monitoring Tools

# System monitoring
htop              # Interactive process viewer
iotop             # I/O monitoring
nethogs           # Network traffic per process

# Python profiling
python -m cProfile -o profile.stats main.py
python -m memory_profiler main.py
py-spy record -o profile.svg -- python main.py

# Database profiling
pgbadger /var/log/postgresql/*.log
pg_stat_statements extension

Output Format

Generate reports in: .claude/vnx-system/performance_reports/PERFORMANCE_PROFILE_[date].md

# Performance Profile Report

## Executive Summary
- Overall health: [Good/Warning/Critical]
- Key bottlenecks identified
- Recommended optimizations

## Detailed Metrics
### Memory Usage
- Python process: XMB
- Chromium instances: XMB
- Peak usage: XMB

### Response Times
- Quickscan p95: Xs
- Storage queries p95: Xms
- API response p95: Xms

## Bottleneck Analysis
1. [Component]: [Issue] - [Impact]
   Recommendation: [Optimization strategy]

## Optimization Roadmap
- Immediate fixes (24h)
- Short-term improvements (7d)
- Long-term optimizations (30d)

Quality Standards

  • Profile before and after optimization
  • Measure impact quantitatively
  • Consider trade-offs explicitly
  • Document optimization rationale

Skill Activation Announcement

MANDATORY — first line of every response after skill load:

🔧 Skill actief: performance-profiler

No exceptions. This must appear before any other content.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.