How to Investigate Low FPS Without Guessing the Bottleneck
Compare fixed workloads, separate browser scheduling from game performance, and collect evidence before blaming the GPU.
Low FPS is an observation, not a diagnosis. A browser shader, a JavaScript animation, and a game can all slow down for different reasons. First establish which workload is affected and whether the change is repeatable.
Make the problem reproducible
Write down the application, scene, resolution, quality settings, power mode, and when the slowdown occurs. If you changed a driver, browser, or setting, preserve the previous conditions where possible. Close competing applications and repeat the same scene rather than comparing unrelated moments.
A shader stress run can provide another observation on the same machine. Keep its viewport and stress level fixed. A browser result cannot confirm that a game has the same bottleneck.
Change one variable
Lower the rendering resolution while holding other settings fixed. If FPS changes substantially, per-pixel work may contribute, but this alone does not identify a particular hardware limit. Next compare the original settings with background tasks closed. Record each change separately.
For our Canvas particle demo, both JavaScript updates and drawing matter. Changing particle count alters both. For instancing, the scene uses a different graphics path. These are separate experiments, not interchangeable scores.
Use the right evidence
| Question | Evidence to collect |
|---|---|
| Is the browser limiting frame delivery? | Visible tab, display refresh, same scene in another browser |
| Did power policy change? | Power mode and battery or mains state |
| Does temperature correlate with slowdown? | Real temperature and clock telemetry from a supported monitor |
| Is the problem application-specific? | A comparable repeated observation in another application |
GPU utilization readings also have engine-specific definitions. A percentage by itself does not prove the CPU, RAM, or storage is the bottleneck. Investigate frame timing or an application's profiler before purchasing an upgrade.
Treat stutter separately from an average
A steady low rate and occasional long pauses are different symptoms. Note timing and workload conditions around each pause. A mean FPS can hide interruptions. Browser background-tab throttling and garbage collection are possible contributors to browser stutter.
Stop if the device becomes unresponsive or shows unexpected graphics corruption. Reduce load and gather logs rather than treating a stress test as a hardware repair tool.
See methodology for a comparison record and requestAnimationFrame for browser timing behavior.