Making games run smoothly.
WHAT TO MEASURE
Frame time, and its distribution Time spent on the processor against the graphics processor Memory use Loading times
WHAT TO ESTABLISH FIRST
Which is the bottleneck: processor or graphics processor.
WHY
They require entirely different remedies, and optimising the wrong one changes nothing.
HOW TO TELL
Reduce resolution: if frame time improves, you are graphics-limited.
WHAT COMMONLY COSTS PROCESSOR TIME
Per-frame updates on many objects Physics with many bodies Pathfinding Garbage collection Loading during play
WHAT COMMONLY COSTS GRAPHICS TIME
Draw calls Overdraw and transparency Shader complexity Shadow rendering Post-processing
WHAT FRAME SPIKES INDICATE
Something happening occasionally: allocation, loading, or a large computation.
WHY SPIKES MATTER MORE THAN AVERAGE
They are perceived as stutter, which is more objectionable than a lower steady rate.
WHAT TO PROFILE ON
The weakest device you intend to support.
WHY NOT A DEVELOPMENT MACHINE
It conceals every performance problem.
WHAT TO SET
A frame time budget, and measure against it continuously.