Přeskočit na obsah

Plánovač, časovače a foreground boost Windows 11 25H2

Na této stránce

Tyto hodnoty řídí plánovač, rozlišení časovačů, distribuci taktovacích přerušení a rozpočet DPC. Podle samotného názvu nelze určit celý efekt: Windows používá bitové masky a normalizuje vstupní hodnoty. Různé záznamy mohou nastavovat stejný režim činnosti.

Kontrolovalo se, které parametry plánovače a časovačů jádro čte, jak se hodnoty normalizují a která pole Win32PrioritySeparation za co odpovídají.

Windows 11 25H2 build 26200.9168, scheduler a timer paths jádra. Konkrétní hry a aplikace do měření zahrnuty nebyly.

Hlavní tabulka parametrů jádra, sledování runtime přístupů k Registry a kontrola bitových polí a normalizace hodnot.

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

Hodnota se skládá z bitových polí. Jádro samostatně určuje zesílení aktivní aplikace (foreground boost), typ a délku kvanta. Ve zkoumaném buildu je počáteční hodnota klientské Windows rovna 0x02. Na vstupní hodnotu se aplikuje maska 0x3F, proto různé záznamy mohou nastavovat jeden režim plánovače.

Rozbor bitových polí po bitech, kalkulačka ekvivalentních hodnot a historická měření latence a FPS jsou vyčleněny do samostatného výzkumu «Win32PrioritySeparation: latence a FPS při plném zatížení CPU». Uživatelskou stránku otázky — volbu, efekt a vrácení — uzavírá stránka nastavení BoosterX.

Parametr mění pravidla plánování. Pro posouzení přínosu v konkrétní úloze je třeba zopakovat test se zatížením CPU a změřit latenci; univerzální zrychlení nastavení nezaručuje.

GlobalTimerResolutionRequests a sousední parametry časovačů se čtou z Session Manager\Kernel. Ovlivňují rozsah platnosti požadavků na rozlišení časovače, místní nebo celosystémový, a distribuci taktovacích přerušení mezi CPU. Na podporovaných platformách může oddělené plánování taktů po CPU fungovat i bez vynuceného nastavení.

MaxDynamicTickDuration omezuje délku spánku v nečinnosti bez periodických taktů. Jednotka měření činí 100 nanosekund: 7500 znamená 0.75 ms, nikoli 7.5 ms. Horní hranice je navíc omezena aktuálním rozlišením časovače. 0xFFFFFFFF odstraňuje dodatečný limit.

DisableLowQosTimerResolution mění omezení pro požadavky na rozlišení časovače s nízkou prioritou. Trvale vysoké rozlišení se tím samo o sobě nenastavuje.

Měnit pravidla časovačů má smysl jen pro zátěž, která takové požadavky skutečně vykonává. Trvale vysoké rozlišení zvyšuje počet přerušení časovače a spotřebu energie.

DPC budget a boost decay

Sekce “DPC budget a boost decay”

DpcCumulativeSoftTimeout zadává rozpočet celkového času vykonávání DPC. Jeho hranice normalizace, vztah k DpcWatchdogPeriod a sousední parametry DPC a worker-limity jsou rozebrány ve výzkumu «DPC a Kernel Executive workers v Windows 11 25H2»; zde se nepřevypravují. ForceForegroundBoostDecay mění pravidla útlumu zesílení aktivní aplikace a PassiveIntRealTimeWorkerPriority zadává prioritu speciálního pracovního vlákna vstupu-výstupu. Pro PassiveIntRealTimeWorkerPriority kód přijímá 17..21; při absenci záznamu se používá 16. Hodnota 18 je přípustná a zvyšuje prioritu.

Při srovnání berte v úvahu jednotky měření a omezení rozsahů. Jádro normalizuje nepodporované hodnoty, proto se zapsané číslo může lišit od skutečně použitého.

Tyto parametry se týkají systémového plánování a diagnostiky ovladačů. Bez trasy DPC/ISR nejsou pro jejich ruční změnu spolehlivé důvody.

  • Čtení všech parametrů tabulky potvrzeno v ntoskrnl.exe buildu 26200.9168: Win32PrioritySeparation se čte při inicializaci plánovače a session initialization, parametry časovačů — ve fázích inicializace jádra.
  • Potvrzeny počáteční hodnoty a normalizace: maska 0x3F pro Win32PrioritySeparation, rozsah 17..21 s rezervním 16 pro PassiveIntRealTimeWorkerPriority, jednotka 100 ns u MaxDynamicTickDuration.
  • Samotná pozorování jsou kvalitativní: hodnoty latence, FPS nebo zátěže na pozadí se v tomto výzkumu neměřily.
  • Readers a normalizace parametrů v ntoskrnl.exe zkoumaného buildu.
  • Počáteční hodnota 0x02 pro Win32PrioritySeparation a maska 0x3F.
  • Význam polí boost a kvant, jednotky MaxDynamicTickDuration.
  • Normalizace PassiveIntRealTimeWorkerPriority do rozsahu 17..21 při rezervním 16.
  • Vliv změny na FPS, latenci nebo odezvu.
  • Přínos změny bez zátěže, která časovače a DPC skutečně využívá.

Ponechte standardní hodnoty. Parametry měňte jen pro zátěž, která příslušné požadavky skutečně vykonává, a výsledky srovnávejte ve stejných bězích.

Vraťte standardní hodnoty nebo odstraňte volitelné záznamy. Parametry jádra se použijí při příštím spuštění Windows.

Čtení ve fázi 0 spuštění se nemusí vejít do intervalu záznamu Procmon. Výzkum potvrzuje kód čtení a normalizaci na buildu 26200.9168. Počet nezávislých běhů pozorování (spuštění a tras) není v datech článku zaznamenán, proto opakovatelnost samotných pozorování čtenářů nebyla kvantitativně hodnocena. Univerzální vliv na výkon nebo latenci nebyl stanoven.

Výzkum a použité nástroje patří vývojáři BoosterX, proto má vývojář přímý zájem na výsledcích. Metodika a hranice použitelnosti jsou popsány výše a závěry lze ověřit podle otevřených dat a uvedených veřejných zdrojů.

Veřejné zdroje ověřeny: 2026-09-02.

  • 2026-09-20: přidán disclaimer o střetu zájmů; sladěna data reviewed/modified.
  • 2026-09-19: přidány sekce «Výsledky», křížové odkazy na výzkumy Win32PrioritySeparation a DPC/worker-parametrů a stránka nastavení BoosterX; zaznamenána absence počtu běhů pozorování.
  • 2026-09-02: první publikace; potvrzeny readers, normalizace a bitová pole, přidány hranice praktického přínosu.