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

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

Drosselung bei minimiertem oder inaktivem Fenster Minimized / unfocused window throttling

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

In der interaktiven Fassung mit Grafiken und Experimenten öffnen →

Wechselt man in ein anderes Fenster oder minimiert das Spiel, lassen Spiel und Windows es zum Stromsparen langsamer laufen. Bei der Rückkehr kommen die aufgestauten Pakete auf einmal, oder die Verbindung ist schon abgebrochen.

Warum Mit Alt+Tab in ein anderes Fenster gewechselt oder Spiel minimiert → Folge Solange das Spiel nicht sichtbar ist, senkt es die FPS stark oder pausiert, auch Windows senkt die Priorität nicht sichtbarer Programme → Auf dem Bildschirm Im Moment der Rückkehr Zeitraffer, nach längerer Zeit im Hintergrund Verbindungsabbruch

Symptome
Zeitraffer, Ruckeln, Verbindungsabbruch
Faktoren
Stillstand
Wer ist betroffen
Nur ich
Wann
Bei bestimmten Aktionen, Nach Inaktivität
Zuständigkeit
Hauptzuständig Client-Entwicklung (Entwicklungsteam)
Aufgaben Entwicklungsteam
Paketempfang und Heartbeat auch bei unsichtbarem Fenster in einem eigenen Thread weiterlaufen lassen, Engine-Einstellung „Im Hintergrund ausführen“ (Run In Background) prüfen, bei der Rückkehr in einem Schritt auf den aktuellen Zustand abgleichen.
Größenordnungen
Senkt das Spiel die FPS bei unsichtbarem Fenster auf 5–10, dauert ein Frame 100–200 ms. Spiele, die Pakete pro Frame verarbeiten, lesen Pakete entsprechend später.
Im Graphen
Lücke, dann alles auf einmal · Frame-Abstand (vor und nach dem Fensterwechsel), Anzahl verarbeiteter Pakete
Wo nachsehen
Bei laufendem PresentMon Alt+Tab und Minimieren ausprobieren und den Frame-Abstand bei unsichtbarem Fenster ansehen. Im Spiel-Log die Zeitpunkte von Fokuswechseln protokollieren und mit den Trennungsgründen abgleichen
Spricht dafür
Solange das Fenster nicht sichtbar ist, steigt der Frame-Abstand auf 100 ms oder mehr, oder die Aufzeichnung reißt ab. Im Moment der Rückkehr werden aufgestaute Pakete auf einmal verarbeitet: Zeitraffer. Nach längerer Zeit im Hintergrund Trennung wegen Heartbeat-Timeout
Spricht dagegen
Gleiches Verhalten auch bei sichtbarem Fenster: „CPU-Belegung durch Hintergrundprozesse“ oder Netzwerkseite
Prüfmittel
Prüfung in der Umgebung des Spielers
Mehr dazu
Windows 11 garantiert Programmen, deren Fenster minimiert oder vollständig verdeckt ist und keinen Ton ausgibt, keinen 1-ms-Timer. Auf Notebooks im Akkubetrieb drosselt Windows solche Programme auf die sparsamste Taktrate und lässt sie bei CPUs mit gemischten Kerntypen mitunter auf den langsamen Effizienzkernen laufen. Verhält sich von zwei Clients auf demselben PC nur der im Hintergrund auffällig, sehen Sie sich zusätzlich „Drosselung von Hintergrundfenstern“ an.

Quellen

  1. Quality of Service Microsoft
    Programme mit Fenstern, die weder sichtbar noch hörbar sind, erhalten Low QoS und laufen im Akkubetrieb mit der effizientesten CPU-Taktrate auf Effizienzkernen
  2. timeBeginPeriod function (timeapi.h) Microsoft
    Windows 11 garantiert Prozessen mit verdeckten oder minimierten Fenstern keine höhere Timer-Auflösung als den Standard
  3. Application.runInBackground Unity
    Unity-Standardwert ist false, daher hält die Game-Loop an, sobald das Fenster in den Hintergrund geht
  4. PresentMon Capture Application (README-CaptureApplication.md) Intel
    MsBetweenPresents: Zeit zwischen diesem und dem vorigen Present()-Aufruf (ms)

Verwandte Ursachen

Gleiche Schicht: L2 Client-OS und Gerät

Ursachen aus anderen Schichten mit demselben Symptom (Zeitraffer)

Karte in der interaktiven Fassung mit Grafiken und Experimenten ansehen