한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Game-Lag-Whitepaper › L2 Client-OS und Gerät

Timer-Auflösung Timer resolution (Windows 15.6ms)

Ursachen-ID co-timer · Hauptzuständig Client-Entwicklung (Entwicklungsteam)

In der interaktiven Fassung mit Grafiken und Experimenten öffnen →

Der Standard-Timer von Windows arbeitet in Schritten von 15,6 ms. Ein „nur 1 ms warten“ dauert deshalb tatsächlich bis zum nächsten Timer-Takt, im ungünstigsten Fall 15,6 ms.

Warum Framelimit und Paketversand über Sleep (kurzes Warten) umgesetzt → Folge OS weckt nur in Schritten von 15,6 ms auf → Auf dem Bildschirm Frame-Abstände und Sendeabstände der Eingaben schwanken

Symptome
Ruckeln
Faktoren
Jitter
Wer ist betroffen
Nur ich
Wann
Immer
Zuständigkeit
Hauptzuständig Client-Entwicklung (Entwicklungsteam)
Aufgaben Entwicklungsteam
Hochauflösende Timer verwenden, Pacing über Events oder V-Sync (ohne Sleep-Wartezeiten).
Größenordnungen
In Schritten von 15,6 ms lässt sich kein Abstand von 16,7 ms treffen. Die Frame-Abstände springen zwischen 15,6 ms und 31,2 ms hin und her.
Im Graphen
Von Anfang an dauerhaft hoch · Verteilung der Frame-Abstände
Wo nachsehen
Die Verteilung von MsBetweenPresents (Frame-Abstand) in PresentMon und den Abschnitt „Platform Timer Resolution“ im Bericht von powercfg /energy (Prozesse, die die Timer-Auflösung geändert haben) ansehen
Spricht dafür
Frame-Abstände häufen sich bei Vielfachen von 15,6 ms wie 15,6 ms und 31,2 ms, und das Spiel fordert keine höhere Timer-Auflösung an
Spricht dagegen
Abstände gleichmäßig gestreut: eher „CPU-Belegung durch Hintergrundprozesse“ oder Frame-Last als der Timer
Prüfmittel
Prüfung in der Umgebung des Spielers
Mehr dazu
In älteren Windows-Versionen wirkte es sich auf alle Programme aus, wenn ein Programm den Timer auf 1 ms stellte. Daher stammt auch der Spruch „Mit offenem Browser läuft das Spiel flüssiger“. Seit Windows 10, Version 2004, gilt die Einstellung nur für das anfragende Programm. Windows 11 kann Anfragen von Fenstern ignorieren, die minimiert oder vollständig verdeckt sind und keinen Ton ausgeben.

Quellen

  1. _WDF_TIMER_CONFIG (wdftimer.h) Microsoft
    Genauigkeit gewöhnlicher Timer entspricht dem Takt der Systemuhr, standardmäßig 15,6 ms, hochauflösende Timer 1 ms
  2. timeBeginPeriod function (timeapi.h) Microsoft
    Bis Windows 10 2004 globale Einstellung, danach nur für den anfragenden Prozess, Windows 11 garantiert Prozessen mit verdeckten oder minimierten Fenstern keine hohe Auflösung
  3. CreateWaitableTimerExW function (synchapi.h) Microsoft
    Flag für hochauflösende Waitable Timer: CREATE_WAITABLE_TIMER_HIGH_RESOLUTION
  4. PresentMon Capture Application (README-CaptureApplication.md) Intel
    MsBetweenPresents: Zeit zwischen diesem und dem vorigen Present()-Aufruf (ms)
  5. Results for the Idle Energy Efficiency Assessment Microsoft
    Standardauflösung des Systemtimers 15,6 ms, Prozesse, die die Timer-Auflösung geändert haben, stehen im Abschnitt „Platform Timer Resolution“ des Energieberichts
  6. Powercfg command-line options Microsoft
    powercfg /energy: analysiert das System und erstellt einen Energiebericht (HTML)

Verwandte Ursachen

Gleiche Schicht: L2 Client-OS und Gerät

Ursachen aus anderen Schichten mit demselben Symptom (Ruckeln)

Karte in der interaktiven Fassung mit Grafiken und Experimenten ansehen