· EN

Measuring «Smoothness» — From FrameTime to Stutter

This is an immersive long-form essay — best read in its dedicated layout → Open the full version

Why does a high FPS sometimes still feel laggy? Why are 24fps movies smooth to the eye while 60fps apps can still draw complaints? Performance engineering is about turning the subjective sense of «smooth / not smooth» into measurable discriminator functions.

Six chapters

  1. FrameTime — the smallest unit of a frame: from GPU output to display scanout, what one frame really is and who decides its length.
  2. FPS — the two faces of frame rate: average FPS vs. instantaneous FPS, and why the average lies.
  3. Smoothness — visual inertia & cinematic frames: why the eye forgives an even low frame rate but punishes a jittery high one.
  4. Jank — a discriminator function: turning «it stuttered» into a math condition — current frame > 2× the mean of the last three AND > 50ms.
  5. Stutter — ratio over count: Jank counts depend on test duration; Stutter normalizes by total frame time.
  6. Impact — where to look, by scenario: interactive flow, video playback, game combat, scrolling list — which metric to watch for each.

Why this language matters

  • One FPS number isn’t enough: a 60fps average can hide a 300ms frame — a Big Jank.
  • Jank counts aren’t comparable: 10 janks in 5 minutes vs. 10 janks in an hour are not the same.
  • Discriminators are portable: PerfDog’s Jank formula is four lines of code; it doesn’t depend on the tool itself.

By the end you’ll have an engineering language for stutter — so the next time you say «this page feels laggy,» you can say which class of problem it is, which metric to look at, and how to measure.

Comments

0 comments