Skip to content
killown edited this page Mar 16, 2026 · 1 revision

Metric: JIT (Jitter)


Executive Summary

JIT measures the variance in frame delivery timing, specifically tracking how much the delta ms (frame time) fluctuates from one frame to the next. While drift ms tracks your alignment to the monitor, JIT tracks the internal stability of your engine's pulse.

  • 0.0 ms: Perfect rhythmic stability. Every frame takes exactly the same amount of time.
  • Low JIT (< 0.5 ms): Smooth, predictable motion.
  • High JIT: The "rhythm" is broken. Even if the average FPS is high, the motion feels "nervous" or "shaky."

Why this number matters

Consistency is often more important than raw speed. A steady 60 FPS feels significantly better than a "120 FPS" stream that constantly jumps between 4ms and 12ms.

  1. The Human Eye: Humans are highly sensitive to changes in velocity. If an object moves 10 pixels, then 15 pixels, then 5 pixels in the same time interval, your brain perceives this as judder.
  2. Predictability: High jitter makes it impossible for the engine to accurately predict where a moving object should be in the next frame, leading to spatial errors.

How to read the numbers

JIT Value Perception Technical Reality
0.0 - 0.2 ms Liquid Professional-grade stability. No perceptible variance.
0.3 - 1.0 ms Acceptable Standard OS scheduling noise. Typical for modern systems.
1.0 - 3.0 ms Nervous Motion feels "oily" or inconsistent. Background tasks are likely interfering.
> 3.0 ms Jittery Severe pacing failure. The animation is visibly vibrating.

JIT vs. Drift

  • JIT is internal: "How consistent is my own speed?"
  • Drift is external: "How well do I line up with the monitor?"

You can have a high Drift (consistently late) but low JIT (perfectly steady). This results in smooth motion with a slight latency penalty. However, high JIT always results in poor visual quality.


Troubleshooting

  • Correlation with CPU Time: If cpu frame ms is also jumping, your simulation logic is inconsistent (e.g., complex loops that only run sometimes).
  • Random JIT Spikes: Often caused by "Stop-the-world" events like garbage collection, disk I/O on the main thread, or the OS moving your application's thread between different CPU cores.
  • Windowed Mode: Running in a window instead of Fullscreen often increases JIT because the OS compositor adds its own variable delay.

The Goal

For a high-end simulation, aim for JIT below 0.5 ms. When jitter is minimized, digital motion begins to lose its "computer-generated" look and starts to feel like a physical object moving through space.

Clone this wiki locally