Gå til indhold

Scheduler, timers og foreground boost i Windows 11 25H2

På denne side

Disse værdier styrer planlæggeren, tilladelse af timere, fordelingen af urinterrupts og DPC-budgettet. Ud fra navnet alene kan man ikke fastslå den fulde effekt: Windows anvender bitmasker og normaliserer inputværdier. Forskellige poster kan angive samme driftstilstand.

Det blev undersøgt, hvilke parametre for planlæggeren og timere kernen læser, hvordan værdierne normaliseres, og hvilke felter i Win32PrioritySeparation der har hvilken betydning.

Windows 11 25H2 build 26200.9168, kernens scheduler- og timer-paths. Konkrete spil og programmer indgik ikke i målingerne.

Mastertabel over kerneparametre, observation af runtime-kald til Registry og kontrol af bitfelter og normalisering af værdier.

Registry path Value Type Default Reader/timing
HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl Win32PrioritySeparation REG_DWORD 0x02 ntoskrnl.exe, derefter session initialization
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel GlobalTimerResolutionRequests REG_DWORD 0 kernel phase-0
samme sti MaxDynamicTickDuration REG_DWORD 0xFFFFFFFF dynamic tick duration limit
samme sti EnablePerCpuClockTickScheduling REG_DWORD 0 phase-1 clock init
samme sti DisableLowQosTimerResolution REG_DWORD 1 timer policy init
samme sti DpcCumulativeSoftTimeout REG_DWORD 120000 DPC budget init
samme sti ForceForegroundBoostDecay REG_DWORD 0 scheduler init
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\I/O System PassiveIntRealTimeWorkerPriority REG_DWORD 16 I/O worker init

Værdien består af bitfelter. Kernen fastlægger separat forstærkningen af det aktive program (foreground boost), kvantets type og varighed. I den undersøgte build er startværdien for klient-Windows 0x02. Der anvendes masken 0x3F på inputværdien, så forskellige poster kan angive én og samme scheduler-tilstand.

Gennemgang af bitfelterne bit for bit, en beregner til ækvivalente værdier og historiske målinger af latenstid og FPS er lagt i en separat undersøgelse «Win32PrioritySeparation: latenstid og FPS ved fuld CPU-belastning». Brugersiden af spørgsmålet — valg, effekt og tilbageførsel — dækkes af BoosterX’ indstillingsside.

Parameteren ændrer planlægningsreglerne. For at vurdere nytten i en konkret opgave skal testen gentages med CPU-belastning og latenstiden måles; indstillingen garanterer ikke nogen universel acceleration.

GlobalTimerResolutionRequests og de tilstødende timer-parametre læses fra Session Manager\Kernel. De påvirker rækkevidden af anmodninger om tilladelse af timere, lokal eller systemdækkende, og fordelingen af urinterrupts mellem CPU’er. På understøttede platforme kan separat planlægning af uret pr. CPU også fungere uden tvungen indstilling.

MaxDynamicTickDuration begrænser varigheden af søvn i tomgang uden periodiske takter. Måleenheden er 100 nanosekunder: 7500 betyder 0.75 ms, ikke 7.5 ms. Den øvre grænse begrænses desuden af den aktuelle timer-tilladelse. 0xFFFFFFFF fjerner den ekstra grænse.

DisableLowQosTimerResolution ændrer grænsen for anmodninger med lav prioritet om tilladelse af timere. Der indstilles dog ikke i sig selv en permanent høj tilladelse.

Reglerne for timere bør kun ændres for belastning, som faktisk udfører sådanne anmodninger. En permanent høj tilladelse øger antallet af timer-interrupts og energiforbruget.

DpcCumulativeSoftTimeout angiver budgettet for den samlede udførelsestid for DPC. Dets normaliseringsgrænser, sammenhængen med DpcWatchdogPeriod og de tilstødende DPC-parametre og worker-grænser er gennemgået i undersøgelsen «DPC og Kernel Executive workers i Windows 11 25H2»; de gengives ikke her. ForceForegroundBoostDecay ændrer reglerne for henfald af forstærkningen af det aktive program, og PassiveIntRealTimeWorkerPriority angiver prioriteten for den særlige arbejdstråd for input/output. For PassiveIntRealTimeWorkerPriority accepterer koden 17..21; hvis posten mangler, bruges 16. Værdien 18 er tilladt og hæver prioriteten.

Ved sammenligning skal man tage højde for måleenheder og grænser for intervaller. Kernen normaliserer ikke-understøttede værdier, så det skrevne tal kan afvige fra det faktisk anvendte.

Disse parametre vedrører systemplanlægning og driverdiagnostik. Uden en DPC/ISR-trace er der ikke solidt grundlag for at ændre dem manuelt.

  • Læsning af alle parametre i tabellen er bekræftet i ntoskrnl.exe af build 26200.9168: Win32PrioritySeparation læses ved initialisering af planlæggeren og session initialization, timer-parametrene — i kernens initialiseringsfaser.
  • Startværdier og normalisering er bekræftet: masken 0x3F for Win32PrioritySeparation, intervallet 17..21 med reserveværdien 16 for PassiveIntRealTimeWorkerPriority, enheden 100 ns for MaxDynamicTickDuration.
  • Selve observationerne er kvalitative: der blev ikke målt værdier for latenstid, FPS eller baggrundsbelastning i denne undersøgelse.
  • Readers og normalisering af parametre i ntoskrnl.exe i den undersøgte build.
  • Startværdien 0x02 for Win32PrioritySeparation og masken 0x3F.
  • Betydningen af felterne boost og kvante, enhederne for MaxDynamicTickDuration.
  • Normalisering af PassiveIntRealTimeWorkerPriority til intervallet 17..21 med reserveværdien 16.
  • Ændringens indvirkning på FPS, latenstid eller responsivitet.
  • Nytten af ændringen uden belastning, som faktisk bruger timere og DPC.

Behold standardværdierne. Ændr kun parametre for belastning, som faktisk udfører de pågældende anmodninger, og sammenlign resultaterne i identiske kørsler.

Gendan standardværdierne, eller slet de valgfrie poster. Kerneparametre anvendes ved næste start af Windows.

Læsninger i fase 0 af opstarten kan falde uden for Procmon’s optagelsesinterval. Undersøgelsen bekræfter læsekoden og normaliseringen på build 26200.9168. Antallet af uafhængige observationskørsler (opstarter og traces) er ikke fastlagt i artiklens data, så reproducerbarheden af selve reader-observationerne er ikke kvantitativt vurderet. Der er ikke fastslået nogen universel indvirkning på ydeevne eller latenstid.

Undersøgelsen og de anvendte værktøjer tilhører udvikleren af BoosterX, så udvikleren har en direkte interesse i resultaterne. Metoden og anvendelsesgrænserne er beskrevet ovenfor, og konklusionerne kan efterprøves via åbne data og de anførte offentlige kilder.

Offentlige kilder er kontrolleret: 2026-09-02.

  • 2026-09-20: tilføjet disclaimer om interessekonflikt; datoer for reviewed/modified afstemt.
  • 2026-09-19: tilføjet afsnittet «Resultater», krydshenvisninger til undersøgelserne af Win32PrioritySeparation og DPC/worker-parametre samt BoosterX’ indstillingsside; det er fastlagt, at antallet af observationskørsler mangler.
  • 2026-09-02: første udgivelse; readers, normalisering og bitfelter bekræftet, grænser for praktisk nytte tilføjet.