performance-template.md 5.7 KB

Performance Test Plan: {PROJECT_NAME}

Version: {VERSION} Created: {DATE} Author: {AUTHOR}


Overview

Performance Philosophy

{High-level approach to performance for this project}

Target Experience

  • Primary target: {platform, e.g., "PS5 at 60 FPS"}
  • Minimum viable: {platform, e.g., "PS4 at 30 FPS"}

Performance Targets

Frame Rate

Platform Target FPS Minimum FPS Mode
PC (High)
PC (Low)
PS5 Performance
PS5 Quality
Xbox Series X
Switch
Mobile

Memory Budget

Platform Total RAM Game Budget Reserve
PC (Min)
PS5
Xbox Series X
Switch
Mobile

Loading Times

Scenario Target Maximum Notes
Initial boot
Level load
Fast travel
Respawn
Save/Load

Test Scenarios

Frame Rate Stress Tests

Scenario: {Name}

GIVEN {setup conditions}
WHEN {stress conditions applied}
THEN frame rate >= {minimum}
AND frame time variance < {threshold}
PLATFORM: {target platforms}

{Repeat for each scenario}

Memory Tests

Scenario: Extended Play Session

GIVEN game running for 4+ hours
WHEN normal gameplay patterns occur
THEN memory usage stays within budget
AND no detected memory leaks
AND GC pauses < 16ms

Scenario: Level Transition

GIVEN player completes level
WHEN loading next level
THEN previous level memory freed
AND memory returns to baseline (+/- 5%)

Loading Time Tests

Scenario: Cold Boot

GIVEN game not in memory
WHEN launching from platform UI
THEN interactive menu in < {target}s
AND loading progress visible

Benchmark Suite

Benchmark Levels

Name Purpose Duration Key Metrics
{Benchmark 1} {purpose} {seconds} FPS, frame time
{Benchmark 2} {purpose} {seconds} Draw calls, memory
{Benchmark 3} {purpose} {seconds} Load time

Baseline Metrics

Benchmark Platform FPS (Avg) FPS (1%) Memory Date

Regression Criteria

Metric Warning Failure
FPS Average -5% -10%
FPS 1% Low -10% -20%
Memory +5% +10%
Load Time +10% +25%

Profiling Methodology

Tools

Platform CPU Profiler GPU Profiler Memory
Unity Unity Profiler Frame Debugger Memory Profiler
Unreal Unreal Insights RenderDoc Memreport
Godot Profiler Shader debugger Monitors
PC PIX, vtune RenderDoc, Nsight RAMMap
PS5 Razor Razor GPU -
Xbox PIX PIX -

Profiling Checklist

CPU

  • Main thread frame time
  • Worker thread utilization
  • GC frequency and duration
  • Hotspot identification

GPU

  • Draw call count
  • Overdraw ratio
  • Shader complexity
  • Memory bandwidth

Memory

  • Peak allocation
  • Leak detection
  • Fragmentation
  • Asset memory breakdown

Automated Tests

CI Integration

# Example CI configuration
performance-tests:
  stage: test
  script:
    - ./run-benchmarks.sh
    - ./check-regression.sh
  artifacts:
    reports:
      performance: benchmark-results.json
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule"

Automated Test Examples

{Engine-appropriate code examples}


Platform-Specific Testing

PC

  • Test on minimum spec hardware
  • Test on recommended spec hardware
  • Verify quality presets work
  • Check VRAM usage at each tier
  • Test at 1080p, 1440p, 4K

Console

  • Test performance mode
  • Test quality mode
  • Check thermal throttling behavior
  • Verify suspend/resume
  • Test with HDD vs SSD (if applicable)

Mobile

  • Test on low-tier device
  • Test on mid-tier device
  • Test on high-tier device
  • Monitor thermal throttling
  • Check battery drain

Schedule

Activity Frequency Owner
Benchmark run Daily CI
Regression review Weekly QA Lead
Deep profiling Milestone Tech Lead
Platform soak test Monthly QA

Reporting

Weekly Performance Report

  • Benchmark trends
  • Regression incidents
  • Optimization progress
  • Risk areas

Release Criteria

  • All platforms meet minimum FPS
  • No memory leaks in 4-hour test
  • Load times within targets
  • No regression > failure threshold

Notes

{Additional considerations, known issues, platform quirks}