Expose the frame-time distribution
The first signal should reveal spikes, tails, and pacing instead of reducing the session to an average that hides stutter.
Performance diagnosis
Separate frame pacing, CPU, GPU, system tracing, and graphics calls so optimization is driven by reproducible evidence rather than average FPS.
01
A game that feels uneven may be limited by pacing, CPU spikes, GPU pressure, resource uploads, or operating-system scheduling, and average FPS cannot distinguish them. This collection selects tools around reproducible capture so the team classifies the bottleneck before testing the smallest useful change.
Selection criteria
02
The first signal should reveal spikes, tails, and pacing instead of reducing the session to an average that hides stutter.
CPU, GPU, driver, system events, and graphics calls should be investigated in layers before a large subsystem is rewritten.
Record the baseline, scene, settings, hardware, and build so a before-and-after result can be attributed to the change.
Recommended workflow
03
Use the same save, camera, input sequence, resolution, and quality settings, then warm up and record hardware plus build identifiers.
Decide whether the symptom resembles sustained GPU pressure, a CPU limit, or an intermittent spike before taking a deeper capture.
Use timelines and zones for CPU work, frame capture for GPU events, and scheduler traces for system behavior instead of collecting everything.
Record the change, expected metric, and possible side effects, then rerun the same segment and inspect averages, percentiles, and worst frames.
Selected resources
The six tools progress from lightweight overlays through CPU and system timelines to GPU frame capture. Choose the next layer from the symptom already observed instead of enabling every profiler together.
Tool
Open-source frame debugger spanning major graphics APIs
RenderDoc captures a rendered frame and exposes draw calls, pipeline state, resources, meshes, shaders, and outputs across major desktop APIs and Android.
Tool
Low-overhead open-source CPU, GPU, and memory profiler for real-time software
Tracy combines client instrumentation with a standalone viewer for frames, thread zones, locks, call stacks, allocations, and GPU timing in native code and custom engines.
Tool
Analyze cross-process system performance on one timeline
Google's open tracing platform provides Android/Chrome capture, a native SDK, SQL queries, and a browser timeline.
Tool
Record and replay OpenGL and Direct3D calls
An open graphics-API tracer capturing call streams, inspecting state, replaying frames, and debugging pixels and shaders.
Tool
Overlay frametime and hardware performance metrics on Linux games
An open Vulkan and OpenGL performance overlay showing FPS, frametime, CPU or GPU load, temperatures, memory, power, and other metrics with logging, presets, and local plotting.
Tool
Locate native game CPU hotspots with a low-overhead sampling profiler
A commercial profiler for games and real-time applications that samples multithreaded native code on Windows, Linux, and consoles with call trees, timelines, locks, context switches, and custom events.