Skip to content
Back to skills

Hammer Benchmark Report

ASecurity

Generates professional performance analysis reports from SDL3 HammerEngine benchmark results including statistical analysis, comparison tables, visualizations, and recommendations. Use when preparing performance documentation, analyzing optimization efforts, or generating milestone/release reports.

  • 666 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added February 8, 2026
developmentjavascriptpythonrustgojavac++bashnoderefactoringgit

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill hammer-benchmark-report --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Hammer Benchmark Report?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Hammer Benchmark Report
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-hammer-benchmark-report/badge)](https://www.skillsdirectory.com/skills/majiayu000-hammer-benchmark-report)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: hammer-benchmark-report
description: Generates professional performance analysis reports from SDL3 HammerEngine benchmark results including statistical analysis, comparison tables, visualizations, and recommendations. Use when preparing performance documentation, analyzing optimization efforts, or generating milestone/release reports.
allowed-tools: [Bash, Read, Write, Grep]
---

# HammerEngine Benchmark Report Generator

This Skill creates comprehensive, professional-quality performance reports from SDL3 HammerEngine benchmark results. Perfect for documentation, stakeholder updates, or performance tracking over time.

## Report Capabilities

1. **Data Aggregation** - Collect metrics from all benchmark test results
2. **Statistical Analysis** - Calculate mean, median, stddev, percentiles
3. **Visual Representation** - Generate ASCII charts and tables
4. **Trend Analysis** - Compare against historical baselines
5. **Callgrind Integration** - Include profiling hotspot analysis
6. **Professional Formatting** - Markdown/HTML/PDF output formats
7. **Executive Summary** - High-level overview for stakeholders

## Input Sources

### Benchmark Result Files

**Location:** `$PROJECT_ROOT/test_results/`
(Ensure PROJECT_ROOT environment variable is set to project root directory)

**Files to Scan:**
```
$PROJECT_ROOT/test_results/
├── ai_benchmark/
│   ├── performance_metrics.txt
│   └── performance_report.md
├── collision_benchmark/
│   ├── performance_metrics.txt
│   └── performance_report.md
├── pathfinder_benchmark/
│   ├── performance_metrics.txt
│   └── performance_report.md
├── event_manager_scaling/
│   ├── performance_metrics.txt
│   └── performance_report.md
├── particle_benchmark/
│   ├── performance_metrics.txt
│   └── performance_report.md
├── ui_stress/
│   ├── performance_metrics.txt
│   └── performance_report.md
└── valgrind/
    ├── callgrind/
    │   └── callgrind.out.*
    └── cache/
        └── cachegrind.out.*
```

### Historical Baselines (if available)

```
$PROJECT_ROOT/test_results/baseline/
$PROJECT_ROOT/test_results/baseline_history/
```

## Execution Steps

### Step 1: Discover Available Benchmark Results

**Scan for results:**
```bash
find "$PROJECT_ROOT/test_results/" -name "performance_metrics.txt" -type f
```

**Expected benchmarks:**
- AI System Benchmark
- Collision System Benchmark
- Pathfinder Benchmark
- Event Manager Scaling
- Particle Manager Benchmark
- UI Stress Tests

**For each found result:**
- Record timestamp (from file modification date)
- Extract all metrics
- Categorize by system

### Step 2: Extract and Parse Metrics

**Extraction Patterns:**

#### AI System Metrics (Dual Benchmark System)

**Synthetic Benchmarks** (AIManager infrastructure):
```bash
grep -B 5 -A 10 "TestSynthetic" "$PROJECT_ROOT/test_results/ai_scaling_benchmark_"*.txt | \
  grep -E "Entity updates per second:|entities"
```

**Integrated Benchmarks** (Production behaviors):
```bash
grep -B 5 -A 10 "TestIntegrated" "$PROJECT_ROOT/test_results/ai_scaling_benchmark_"*.txt | \
  grep -E "Entity updates per second:|entities"
```

**Parse into structure:**
```
AI_System_Synthetic:
  Entity_100: 170000
  Entity_200: 750000
  Entity_1000: 975000
  Entity_5000: 925000
  Entity_10000: 995000

AI_System_Integrated:
  Entity_100: 569152
  Entity_200: 579794
  Entity_500: 611098
  Entity_1000: 1192606
  Entity_2000: 1587491
```

#### Collision System Metrics
```bash
grep -E "^(Collision Checks|Query Time|Hash Efficiency|AABB Tests):" \
  "$PROJECT_ROOT/test_results/collision_benchmark/performance_metrics.txt"
```

#### Pathfinder Metrics
```bash
grep -E "^(Path Calculation|Nodes Explored|Cache Hits|A\* Performance):" \
  "$PROJECT_ROOT/test_results/pathfinder_benchmark/performance_metrics.txt"
```

#### Event Manager Metrics
```bash
grep -E "^(Events/sec|Dispatch Latency|Queue Depth|Peak Throughput):" \
  "$PROJECT_ROOT/test_results/event_manager_scaling/performance_metrics.txt"
```

#### Particle Manager Metrics
```bash
grep -E "^(Particles/frame|Render Time|Batch Count|Culling Efficiency):" \
  "$PROJECT_ROOT/test_results/particle_benchmark/performance_metrics.txt"
```

#### UI System Metrics
```bash
grep -E "^(Components|Render Time|Event Handling|DPI Scaling):" \
  "$PROJECT_ROOT/test_results/ui_stress/performance_metrics.txt"
```

### Step 3: Statistical Analysis

**For each metric with multiple data points:**

#### Calculate Statistics

```python
def calculate_statistics(values):
    """Calculate statistical measures for a set of values"""
    n = len(values)
    mean = sum(values) / n

    # Median
    sorted_values = sorted(values)
    median = sorted_values[n//2] if n % 2 == 1 else \
             (sorted_values[n//2-1] + sorted_values[n//2]) / 2

    # Standard Deviation
    variance = sum((x - mean) ** 2 for x in values) / n
    stddev = variance ** 0.5

    # Percentiles
    p50 = median
    p95 = sorted_values[int(n * 0.95)]
    p99 = sorted_values[int(n * 0.99)]

    # Min/Max
    min_val = min(values)
    max_val = max(values)

    return {
        'mean': mean,
        'median': median,
        'stddev': stddev,
        'p50': p50,
        'p95': p95,
        'p99': p99,
        'min': min_val,
        'max': max_val,
        'coefficient_of_variation': (stddev / mean) * 100 if mean > 0 else 0
    }
```

**Apply to metrics:**
- If multiple benchmark runs exist, aggregate data
- Calculate statistics for each metric
- Identify outliers (values > 2 stddev from mean)

### Step 4: Callgrind Analysis (if available)

**Parse Callgrind Output:**

```bash
# Find most recent callgrind output
CALLGRIND_FILE=$(ls -t "$PROJECT_ROOT/test_results/valgrind/callgrind/callgrind.out."* 2>/dev/null | head -n 1)

if [ -f "$CALLGRIND_FILE" ]; then
    # Extract top hotspots using callgrind_annotate
    callgrind_annotate --auto=yes "$CALLGRIND_FILE" | head -n 50
fi
```

**Extract:**
- Top 10 functions by time (Ir - instruction reads)
- Top 10 functions by calls
- Call graphs for critical paths (AI update, collision detection, rendering)

**Example Hotspot Data:**
```
Function                               Ir        %
AIManager::updateBehaviors()           15,234M   45.2%
CollisionManager::detectCollisions()    6,123M   18.1%
PathfinderManager::calculatePath()      4,056M   12.0%
```

### Step 5: Trend Analysis (if baselines available)

**Compare Against Baseline:**

For each metric:
1. Load baseline value (if exists)
2. Calculate percentage change
3. Determine trend direction (improving/degrading/stable)
4. Identify long-term trends (if multiple historical baselines)

**Trend Classification:**
- 📈 **Improving:** >5% better than baseline
- 📉 **Degrading:** >5% worse than baseline
- ➡️ **Stable:** Within ±5% of baseline
- 🆕 **New:** No baseline for comparison

### Step 6: Generate Report Sections

#### Section 1: Executive Summary

```markdown
# SDL3 HammerEngine Performance Report

**Generated:** YYYY-MM-DD HH:MM:SS
**Benchmark Suite Version:** <git-commit-hash>
**Branch:** <current-branch>
**Platform:** <OS-version>
**Build Type:** Debug/Release

---

## Executive Summary

### Overall Performance: ✓ EXCELLENT / ✓ GOOD / ⚠ FAIR / ❌ NEEDS IMPROVEMENT

SDL3 HammerEngine demonstrates <strong/adequate/weak> performance across all critical systems:

- **AI System:** Handles 10,000+ entities at 62 FPS with 5.8% CPU (Target: 60+ FPS, <6% CPU) ✓
- **Collision System:** 125,000 collision checks/sec, 0.08ms query time ✓
- **Pathfinding:** 8.5ms path calculation, 78% cache hit rate ✓
- **Event System:** 8,500 events/sec throughput, 0.12ms dispatch latency ✓
- **Particle System:** 5,000 particles/frame, 3.2ms render time ✓
- **UI System:** 1,000 components, 4.5ms render time ✓

### Key Achievements

- AI system exceeds 10K entity target with headroom
- Collision system optimization improved query speed by 12%
- Event throughput supports 8K+ concurrent events
- All systems meet or exceed performance targets

### Areas for Improvement

- Event dispatch latency increased 8% (monitor)
- AI behavior updates showing slight variance (9% stddev)

### Recommendation

**Status:** Ready for production
**Next Milestones:** Optimize event dispatching, stabilize AI behavior timing
```

#### Section 2: Detailed System Analysis

```markdown
## Detailed Performance Analysis

### AI System - Synthetic Benchmarks (Infrastructure Performance)

#### Purpose
Tests AIManager infrastructure without integration overhead

#### Benchmark Results

| Entity Count | Value (updates/sec) | Status | Baseline | Change |
|--------------|---------------------|--------|----------|--------|
| 100 | 170K | ✓ | 170K | 0.0% |
| 200 | 750K | ✓ | 750K | 0.0% |
| 1000 | 975K | ✓ | 975K | 0.0% |
| 5000 | 925K | ✓ | 925K | 0.0% |
| 10000 | 995K | ✓ | 995K | 0.0% |

#### Threading Efficiency
- Single-threaded (100): 170K updates/sec
- Multi-threaded (5000): 925K updates/sec
- Speedup: 5.4x

#### Statistical Summary
- Mean: 963K updates/sec (across entity counts)
- Std Dev: 138K (14% CoV)
- Consistent performance across entity scales

---

### AI System - Integrated Benchmarks (Production Workload)

#### Purpose
Tests AIManager with PathfinderManager/CollisionManager integration

#### Benchmark Results

| Entity Count | Value (updates/sec) | Status | Baseline | Change |
|--------------|---------------------|--------|----------|--------|
| 100 | 569K | ✓ | 569K | 0.0% |
| 200 | 580K | ✓ | 580K | 0.0% |
| 500 | 611K | ✓ | 611K | 0.0% |
| 1000 | 1193K | ✓ | 1193K | 0.0% |
| 2000 | 1587K | ✓ | 1587K | 0.0% |

#### Threading Efficiency
- Single-threaded (100): 569K updates/sec
- Multi-threaded (2000): 1587K updates/sec
- Speedup: 2.8x

#### Statistical Summary
- Mean: 908K updates/sec (across entity counts)
- Std Dev: 444K (49% CoV)
- Performance scales with entity count

---

### AI System - Integration Overhead Analysis

#### Overhead Metrics

| Entity Count | Synthetic | Integrated | Overhead | Assessment |
|--------------|-----------|------------|----------|------------|
| 100 | 170K/s | 569K/s | -70% | Data inconsistency* |
| 200 | 750K/s | 580K/s | +23% | Expected |
| 1000 | 975K/s | 1193K/s | -22% | Data inconsistency* |
| 2000 | N/A | 1587K/s | N/A | N/A |

*Note: Negative overhead indicates synthetic values are estimates while integrated are measured.
Expected overhead: 20-40% (integrated slower due to PathfinderManager)

#### Overhead Sources
- PathfinderManager: Path requests, cache lookups, A* computation
- CollisionManager: Spatial hash queries for neighbors
- Production behaviors: Complex state machines and calculations

**Stability Analysis:**
- ✓ FPS variance low (2.9% CoV) - excellent stability
- ✓ CPU usage consistent (0.3% stddev)
- ✓ Update time predictable (<1ms variance)

#### Performance Profile (Callgrind Hotspots)

Top functions by instruction reads:
1. `AIManager::updateBehaviors()` - 45.2% (expected, main update loop)
2. `AIManager::processBatch()` - 12.3% (batch processing)
3. `BehaviorCache::lookup()` - 8.7% (cache lookups)
4. `ChaseBehavior::executeLogic()` - 6.1% (behavior logic)
5. `PathfinderManager::requestPath()` - 4.2% (pathfinding integration)

**Analysis:** Hotspot distribution is as expected. Most time in core update loop.

#### Trend Analysis

Performance trend over time (vs historical baselines):

```
FPS History:
Jan 2025:  62.3 FPS ← Current
Dec 2024:  61.8 FPS (+0.8% improvement)
Nov 2024:  59.2 FPS (+5.2% improvement)
```

📈 **Trend:** Improving steadily

#### Recommendations

1. **Maintain current performance** - AI system exceeds targets
2. **Monitor behavior update variance** - Consider additional caching
3. **Document batch processing optimization** - Apply pattern to other systems
```

**Repeat similar detailed analysis for:**
- Collision System
- Pathfinding System
- Event Manager
- Particle Manager
- UI System

#### Section 3: Cross-System Analysis

```markdown
## Cross-System Performance Comparison

### Frame Budget Analysis (60 FPS = 16.67ms budget)

| System | Time (ms) | % Budget | Status |
|--------|-----------|----------|--------|
| AI Update | 12.4 | 74.4% | ✓ |
| Collision Detection | 2.8 | 16.8% | ✓ |
| Pathfinding | 1.2 | 7.2% | ✓ |
| Event Processing | 0.5 | 3.0% | ✓ |
| Particle Update | 0.8 | 4.8% | ✓ |
| UI Rendering | 4.5 | 27.0% | ✓ |
| **Total** | **22.2** | **133.3%** | ⚠ |

**Note:** Total exceeds 100% because systems run on separate threads (update vs render).

**Update Thread Budget (60 FPS = 16.67ms):**
- AI: 12.4ms
- Collision: 2.8ms
- Pathfinding: 1.2ms
- Event: 0.5ms
- **Total Update:** 16.9ms (101% of budget) ⚠ Slight overrun

**Render Thread Budget:**
- Particle Render: 0.8ms
- UI Render: 4.5ms
- World Render: 3.2ms
- **Total Render:** 8.5ms (51% of budget) ✓ Plenty of headroom

### System Interaction Analysis

**AI ↔ Pathfinding:**
- Pathfinding requests/frame: 15
- Average latency: 8.5ms
- Cache hit rate: 78%
- ✓ Integration efficient

**Collision ↔ Pathfinding:**
- Dynamic obstacle updates: 50/frame
- Pathfinding weight adjustments: 12/frame
- ✓ Integration smooth

**Event ↔ All Systems:**
- Event throughput: 8,500 events/sec
- Dispatch latency: 0.12ms
- Queue depth: 128 events
- ✓ No bottlenecks detected

### Resource Usage Summary

**CPU Usage by System:**
```
AI Manager:         5.8%
Collision Manager:  2.3%
Pathfinder:         1.2%
Event Manager:      0.8%
Particle Manager:   1.5%
UI Manager:         0.9%
Total Engine:      12.5%
```

**Memory Usage:**
```
AI Manager:         45 MB
Collision Manager:  32 MB
Pathfinder:         18 MB
Event Manager:       8 MB
Particle Manager:   12 MB
UI Manager:         15 MB
Total Engine:      130 MB
```
```

#### Section 4: Optimization Opportunities

```markdown
## Optimization Opportunities

### High Priority

1. **Update Thread Frame Budget Overrun**
   - Current: 16.9ms (101% of 16.67ms budget)
   - Impact: Occasional frame drops
   - Recommendation: Reduce AI update time by 0.5ms
   - Approach: Increase batch size or optimize behavior cache

2. **Event Dispatch Latency Increase**
   - Current: 0.12ms (up 8% from baseline)
   - Impact: Slight event processing delay
   - Recommendation: Profile event dispatch path
   - Approach: Reduce lock contention or optimize event routing

### Medium Priority

3. **Pathfinding Cache Hit Rate**
   - Current: 78%
   - Target: 85%+
   - Recommendation: Increase cache size or improve eviction policy
   - Expected Improvement: Reduce path calculation time by ~15%

4. **Particle Culling Efficiency**
   - Current: 88%
   - Target: 95%+
   - Recommendation: Improve camera frustum culling
   - Expected Improvement: Reduce render time by ~10%

### Low Priority

5. **UI Component Render Time**
   - Current: 4.5ms (stable, within budget)
   - Opportunity: Apply batching technique from particle system
   - Expected Improvement: Reduce to 3.5ms (~22% faster)
```

#### Section 5: Historical Trends

```markdown
## Performance Trends

### AI System FPS Over Time

```
68 ┤
66 ┤          ╭─
64 ┤        ╭─╯
62 ┤    ╭───╯   ← Current (62.3)
60 ┤  ╭─╯
58 ┤╭─╯
56 ┼─────────────────────────
   Nov  Dec  Jan
   2024 2024 2025
```

**Trend:** 📈 Improving (+5.2% over 3 months)

### Collision System Query Time

```
0.12 ┤╮
0.10 ┤ ╰╮
0.08 ┤   ╰───────╮  ← Current (0.08ms)
0.06 ┤           ╰─
0.04 ┼─────────────────────────
     Nov  Dec  Jan
     2024 2024 2025
```

**Trend:** 📈 Improving (-33% over 3 months)

### Event Throughput

```
9000 ┤      ╭───  ← Current (8500/sec)
8500 ┤    ╭─╯
8000 ┤  ╭─╯
7500 ┤╭─╯
7000 ┼─────────────────────────
     Nov  Dec  Jan
     2024 2024 2025
```

**Trend:** 📈 Improving (+21% over 3 months)
```

#### Section 6: Comparative Analysis

```markdown
## Comparative Analysis

### Performance vs Industry Standards

| System | HammerEngine | Industry Avg | Status |
|--------|--------------|--------------|--------|
| Entity Count @ 60 FPS | 10,000 | 5,000-8,000 | ✓ Above Avg |
| Collision Checks/sec | 125,000 | 80,000-100,000 | ✓ Above Avg |
| Event Throughput | 8,500/sec | 5,000-10,000 | ✓ Average |
| Memory/Entity | 13 KB | 10-20 KB | ✓ Average |

**Overall:** HammerEngine performs above industry averages for 2D game engines.

### Performance vs Project Goals

| Goal | Target | Current | Status |
|------|--------|---------|--------|
| 10K+ Entities @ 60 FPS | 60 FPS | 62.3 FPS | ✓ Exceeded |
| AI CPU Usage | <6% | 5.8% | ✓ Met |
| Event Throughput | 10K/sec | 8.5K/sec | ⚠ 85% of goal |
| Collision Efficiency | N/A | 94.2% hash | ✓ Excellent |
| Pathfinding Speed | <10ms | 8.5ms | ✓ Met |

**Overall Progress:** 80% of goals met or exceeded
```

#### Section 7: Technical Details

```markdown
## Technical Details

### Test Environment

- **Hardware:** <CPU-model>, <RAM-size>
- **OS:** Linux 6.16.4 (Bazzite Fedora 42)
- **Compiler:** GCC/Clang <version>, C++20
- **Build Flags:** -O3 -flto -march=x86-64-v3 -mavx2
- **SDL Version:** SDL3 (latest)

### Benchmark Methodology

- **Duration:** 20 minutes total
- **Repetitions:** 5 runs per benchmark (median reported)
- **Warm-up:** 30 seconds per test
- **Isolation:** Tests run sequentially, system idle
- **Profiling:** Callgrind with 1% sampling

### Data Collection

- **Metrics Collection:** Automated via test scripts
- **Storage:** $PROJECT_ROOT/test_results/ directory
- **Baseline:** Updated monthly
- **History:** 6 months retained

### Reliability

- **FPS Variance:** 2.9% CoV (excellent)
- **CPU Variance:** 5.1% CoV (good)
- **Memory Variance:** 1.2% CoV (excellent)

**Overall:** Results are highly reliable and reproducible.
```

#### Section 8: Appendices

```markdown
## Appendix A: Raw Metrics

### AI System Benchmark (Raw Data)

```
Entities: 10000
FPS: 62.3
CPU: 5.8%
Update Time: 12.4ms
Batch Processing: 2.1ms
Behavior Updates: 8.3ms
Memory Usage: 45 MB
Thread Safety: Mutex-protected
Double Buffer: Enabled
Cache Efficiency: 92%
```

<Include raw data for all systems>

## Appendix B: Callgrind Full Output

```
<Full callgrind_annotate output if available>
```

## Appendix C: Test Scripts

All benchmark tests are located in:
- `tests/test_scripts/run_ai_system_benchmark.sh`
- `tests/test_scripts/run_collision_benchmark.sh`
- <list all benchmark scripts>

Run full suite:
```bash
./run_all_tests.sh --benchmarks-only
```

## Appendix D: Baseline History

| Date | AI FPS | Collision Checks | Event Throughput |
|------|--------|------------------|------------------|
| 2025-01-15 | 62.3 | 125,000 | 8,500 |
| 2024-12-15 | 61.8 | 120,000 | 8,200 |
| 2024-11-15 | 59.2 | 110,000 | 7,000 |

<Full historical baseline data>
```

### Step 7: Format Report

**Output Formats:**

#### 1. Markdown (Default)

**Save to:**
```
docs/performance_reports/performance_report_YYYY-MM-DD.md
```

**Advantages:**
- Easy to read in text editor
- Version control friendly
- Can be converted to other formats

#### 2. HTML (Optional)

**Convert markdown to HTML:**
```bash
# If pandoc available
pandoc performance_report.md -o performance_report.html \
  --standalone \
  --css=report_style.css \
  --metadata title="HammerEngine Performance Report"
```

**Advantages:**
- Interactive charts (if using JavaScript)
- Better for web viewing
- Professional appearance

#### 3. PDF (Optional)

**Convert markdown to PDF:**
```bash
# If pandoc + LaTeX available
pandoc performance_report.md -o performance_report.pdf \
  --pdf-engine=xelatex \
  --variable geometry:margin=1in \
  --variable fontsize=11pt \
  --metadata title="HammerEngine Performance Report"
```

**Advantages:**
- Professional document
- Easy to share with stakeholders
- Print-ready

### Step 8: Generate Summary Output

**Console Output:**

```
=== HammerEngine Benchmark Report Generated ===

Report Date: 2025-01-15 14:30:22
Benchmarks Analyzed: 6 systems
Metrics Collected: 42 data points
Baseline Comparison: Available (2024-12-15)

Performance Status: ✓ EXCELLENT

Key Highlights:
  ✓ AI System: 10,000 entities @ 62.3 FPS
  ✓ Collision: 125,000 checks/sec
  ✓ Pathfinding: 8.5ms avg calculation
  ⚠ Event Dispatch: +8% latency (monitor)

Report Generated:
  📄 Markdown: docs/performance_reports/performance_report_2025-01-15.md
  🌐 HTML: docs/performance_reports/performance_report_2025-01-15.html
  📑 PDF: docs/performance_reports/performance_report_2025-01-15.pdf

Report Size: 2.3 MB (includes charts and raw data)
Generation Time: 2m 15s

Next Steps:
  1. Review optimization opportunities (Section 4)
  2. Address update thread budget overrun
  3. Monitor event dispatch latency trend
  4. Update baseline after validating improvements

---
Report ready for distribution
```

## Usage Examples

When the user says:
- "generate performance report"
- "create benchmark report"
- "document current performance"
- "prepare performance analysis"
- "make stakeholder report"

Activate this Skill automatically.

## Report Customization Options

**Ask user for:**

1. **Report Scope:**
   - [ ] All systems (default)
   - [ ] Specific systems only (specify which)

2. **Detail Level:**
   - [ ] Executive summary only
   - [ ] Full detailed report (default)
   - [ ] Technical deep-dive (includes callgrind)

3. **Output Formats:**
   - [x] Markdown (always included)
   - [ ] HTML
   - [ ] PDF

4. **Include Sections:**
   - [x] Executive Summary
   - [x] System Analysis
   - [x] Trends
   - [ ] Callgrind Hotspots (if available)
   - [ ] Optimization Recommendations
   - [ ] Raw Data Appendices

5. **Comparison:**
   - [ ] vs Baseline only
   - [ ] vs Historical baselines (trend)
   - [ ] vs Industry standards

## Performance Expectations

- **Data Collection:** 1-2 minutes
- **Analysis:** 30-60 seconds
- **Report Generation:** 30-60 seconds
- **Total Time:** 2-4 minutes

**Manual equivalent:** 45-60 minutes

## Integration with Workflow

**Use this Skill:**
- After completing benchmark runs
- Before milestone releases
- For monthly performance tracking
- When preparing stakeholder updates
- To document optimization efforts
- Before/after major refactoring

## File Management

**Reports are saved to:**
```
docs/performance_reports/
├── performance_report_2025-01-15.md
├── performance_report_2025-01-15.html
├── performance_report_2025-01-15.pdf
└── latest_report.md (symlink to most recent)
```

**Cleanup old reports:**
```bash
# Keep last 12 months, archive older
find docs/performance_reports/ -name "*.md" -mtime +365 -exec mv {} archive/ \;
```

## Quality Assurance

**Report includes:**
- ✓ All benchmark systems analyzed
- ✓ Statistical validity checks (min 3 data points)
- ✓ Trend analysis (if historical data available)
- ✓ Clear status indicators (✓/⚠/❌)
- ✓ Actionable recommendations
- ✓ Professional formatting
- ✓ Version information (git commit, date)
- ✓ Reproducibility information (test environment)

## Advanced Features

### ASCII Charts

Generate simple ASCII charts for trends:

```
FPS Trend:
68 ┤          ╭─
66 ┤        ╭─╯
64 ┤      ╭─╯
62 ┤    ╭─╯
60 ┤  ╭─╯
58 ┤╭─╯
   └─────────────
```

### Sparklines

Compact trend indicators:
- AI FPS: ▁▂▃▅▆█ (improving)
- Collision: ███▇▅▃ (degrading)

### Color Coding (in HTML/PDF)

- 🟢 Green: Exceeds targets
- 🟡 Yellow: Meets targets
- 🟠 Orange: Below targets (warning)
- 🔴 Red: Critical issues

## Error Handling

**If no benchmark data found:**
- Report: "No benchmark data available. Run benchmarks first:"
- Show command: `./run_all_tests.sh --benchmarks-only`

**If baseline missing:**
- Note in report: "No baseline for comparison. This will serve as baseline."
- Save current metrics as baseline

**If incomplete data:**
- Note missing systems in report
- Generate partial report
- Recommend running missing benchmarks

## Exit Codes

- **0:** Report generated successfully
- **1:** No benchmark data found
- **2:** Report generation failed
- **3:** Partial report (missing data)

## Time Savings

**Manual Process:** ~45-60 minutes
- Collect metrics: 10 min
- Calculate statistics: 15 min
- Format tables: 10 min
- Write analysis: 15 min
- Generate charts: 10 min

**With This Skill:** ~2-4 minutes
- Automated collection
- Automated analysis
- Automated formatting

**Total Time Saved:** ~40-55 minutes per report

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.