La latenza DPC (Deferred Procedure Call) è utile da analizzare soprattutto quando hai micro-stuttering, audio che scoppietta, drop di FPS, input lag apparentemente inspiegabile o problemi durante streaming/registrazione.
1. Che cos'è la latenza DPC
In Windows, alcuni driver hardware devono eseguire rapidamente determinate operazioni. Una parte del lavoro viene rimandata tramite i DPC, che permettono al sistema di gestire queste attività senza bloccare continuamente l'esecuzione normale.
Il problema nasce quando un driver impiega troppo tempo.
Un esempio semplificato:
Gioco
↓
CPU deve eseguire il frame
↓
Driver hardware interviene
↓
DPC molto lungo
↓
CPU rimane occupata
↓
altri lavori aspettano
↓
frame/audio arrivano in ritardo
↓
micro-stutter / audio crackling
Importante: latenza DPC elevata non significa automaticamente FPS bassi. Puoi avere 200 FPS e contemporaneamente problemi di latenza causati da un driver.
2. Lo strumento più semplice: LatencyMon
Uno degli strumenti più utilizzati per diagnosticare questo tipo di problema è LatencyMon di Resplendence.
Cerca di scaricarlo dal sito ufficiale del produttore, non da siti di download casuali.
Quando lo avvii vedrai principalmente:
-
Main
-
Stats
-
Processes
-
Drivers
-
CPUs
La scheda più interessante inizialmente è Main.
3. Come effettuare un test corretto
Non fare il test mentre il PC è completamente inattivo.
Fai così:
Test A — PC inattivo
-
Riavvia Windows.
-
Aspetta 2–5 minuti.
-
Avvia LatencyMon.
-
Premi Start.
-
Lascia lavorare per circa 5 minuti.
Questo stabilisce una situazione di riferimento.
Test B — Gaming
Poi fai un secondo test:
-
Avvia LatencyMon.
-
Premi Start.
-
Avvia il gioco.
-
Gioca normalmente per 10–15 minuti.
-
Se possibile, riproduci proprio il problema che stai cercando.
-
Torna a LatencyMon.
-
Ferma il test.
Il Test B è molto più interessante se il problema compare solamente durante il gaming.
4. Cosa guardare nella schermata Main
Vedrai valori come:
-
Highest measured interrupt to process latency
-
Highest reported ISR routine execution time
-
Highest reported DPC routine execution time
-
Total reported hard pagefault count
Non fissarti su un singolo numero.
Devi cercare un comportamento ripetibile.
Per esempio:
Highest interrupt → 1.2 ms
Highest ISR → 0.18 ms
Highest DPC → 0.95 ms
Hard pagefaults → 2
Questo è molto diverso da:
Highest interrupt → 15 ms
Highest ISR → 2 ms
Highest DPC → 12 ms
Hard pagefaults → 8,000
Nel secondo caso vale la pena investigare.
5. ISR e DPC: differenza
Questa distinzione è importante.
ISR
Interrupt Service Routine
È una routine che viene eseguita in risposta a un interrupt hardware.
Deve essere molto rapida.
DPC
Deferred Procedure Call
Permette di rimandare parte del lavoro dell'ISR a un momento successivo.
In pratica:
Hardware
↓
Interrupt
↓
ISR
↓
DPC
↓
lavoro del driver
Per questo LatencyMon mostra separatamente ISR e DPC.
6. La scheda Drivers è fondamentale
Vai nella scheda:
Drivers
e ordina per:
Highest execution
oppure per il valore temporale più elevato disponibile.
Potresti trovare driver come:
ndis.sys
dxgkrnl.sys
Wdf01000.sys
nvlddmkm.sys
storport.sys
USBXHCI.SYS
HDAudBus.sys
Attenzione: vedere un driver in cima alla lista non significa automaticamente che sia lui la causa.
Questo è uno degli errori più comuni nell'uso di LatencyMon.
7. Esempio: ndis.sys
Supponiamo che LatencyMon mostri:
ndis.sys
Highest execution: 1.8 ms
ndis.sys è associato allo stack di rete di Windows.
Non significa necessariamente:
"ndis.sys è rotto."
Potrebbe essere coinvolto un driver:
-
Ethernet
-
Wi-Fi
-
VPN
-
software di sicurezza
-
filtro di rete
-
software della scheda madre
Quindi devi risalire alla periferica o al software che sta causando il comportamento, non semplicemente cancellare o modificare ndis.sys.
8. Esempio: driver audio
Supponiamo invece di avere:
HDAudBus.sys
Highest DPC: elevato
e contemporaneamente senti:
crack crack crack
nelle cuffie.
In questo caso controllerei:
-
driver audio
-
driver chipset
-
periferica HDMI/DisplayPort audio
-
software audio della scheda madre
-
dispositivi USB audio
-
software di virtualizzazione audio
-
programmi che applicano effetti al microfono/cuffie
Il collegamento temporale tra picchi DPC e crackling è molto più significativo del semplice nome del driver.
9. Il grafico dei DPC è ancora più utile
Se vuoi fare una diagnosi seria, non guardare soltanto il valore massimo.
Cerca picchi ripetuti.
Immagina:
DPC latency
│ │
│ │ │
│ │ │
│ │ │ │
│ │ │ │ │
└──────────────────
tempo →
Se hai un picco enorme una sola volta durante 30 minuti, potrebbe essere poco significativo.
Se invece hai:
│ │ │ │ │ │
│ │ │ │ │ │
└──────────────────────────
ogni pochi secondi, è molto più interessante.
10. Confronta la latenza con il problema reale
Questa è la parte più importante.
Non fare:
"LatencyMon dice 2 ms → devo ottimizzare Windows."
Fai invece:
Problema
↓
Misurazione
↓
Identificazione del picco
↓
Ipotesi sul driver
↓
Modifica UNA cosa
↓
Nuovo test
↓
Confronto
Esempio
Problema:
audio che scoppietta ogni 20–30 secondi durante un gioco.
Test:
11:02 → audio normale
11:05 → crack
11:05 → picco DPC
11:06 → crack
11:06 → picco DPC
Ora hai una correlazione temporale molto più interessante.
11. Hard pagefaults
LatencyMon mostra anche:
Hard pagefaults
Un hard pagefault avviene quando Windows deve recuperare dati dalla memoria secondaria invece di trovarli già nella RAM.
Non significa automaticamente:
"Hai poca RAM."
Potrebbero essere coinvolti:
-
programmi in background
-
file del gioco
-
servizi Windows
-
browser
-
antivirus
-
memoria virtuale
Esempio
Se durante il gioco hai:
RAM utilizzata: 15.8 / 16 GB
Hard pagefaults: molti
vale la pena investigare l'utilizzo della memoria.
Se hai:
RAM utilizzata: 10 / 32 GB
Hard pagefaults: pochi
probabilmente non è il primo elemento su cui concentrarsi.
12. Usa Gestione attività insieme a LatencyMon
Durante il test apri:
Ctrl + Shift + Esc
e controlla:
-
CPU
-
Memoria
-
Disco
-
GPU
-
Rete
Se LatencyMon segnala un picco e contemporaneamente vedi:
CPU → 100%
Disk → 100%
Network → attività intensa
hai informazioni aggiuntive per capire cosa sta succedendo.
13. Ancora meglio: Resource Monitor
Premi:
Win + R
e digita:
resmon
Puoi controllare:
-
CPU
-
memoria
-
disco
-
rete
Per esempio, se sospetti un problema di storage, puoi osservare quale processo sta facendo I/O proprio quando compare lo stuttering.
14. Non fare questi "tweak" automaticamente
Online troverai guide che suggeriscono di:
-
disabilitare HPET
-
modificare timer di Windows
-
modificare
bcdedit -
disabilitare servizi casuali
-
disabilitare core CPU
-
modificare interrupt affinity
-
cambiare valori del registro
-
disinstallare
Wdf01000.sys -
modificare la memoria virtuale a valori arbitrari
Non farlo alla cieca.
Una buona ottimizzazione DPC deve essere basata su una causa osservata.
15. Metodo professionale di diagnosi
Se vuoi farlo seriamente, usa questa procedura.
Fase 1 — Baseline
Riavvio
↓
LatencyMon
↓
5–10 min idle
↓
salva risultati
Fase 2 — Riproduzione
LatencyMon
↓
avvia gioco
↓
riproduci problema
↓
10–20 min
↓
salva risultati
Fase 3 — Identificazione
Guarda:
DPC
ISR
Drivers
Hard pagefaults
CPU
Fase 4 — Isolamento
Disattiva temporaneamente una sola categoria alla volta.
Per esempio:
Wi-Fi → test
poi:
Wi-Fi → ripristina
Bluetooth → test
poi:
Bluetooth → ripristina
USB audio → test
In questo modo sai quale modifica ha prodotto l'effetto.
16. Un esempio completo
Supponiamo che tu abbia:
Ryzen 7 + RTX 4070 + 32 GB RAM
e durante Warzone avverti micro-stuttering.
LatencyMon:
Highest DPC: 4.2 ms
Driver principali:
ndis.sys
Wdf01000.sys
Contemporaneamente:
Wi-Fi attivo
VPN attiva
Discord attivo
Prima ipotesi:
stack di rete / driver Wi-Fi / filtro VPN.
Fai un test controllato:
VPN OFF
↓
gioco
↓
LatencyMon
Se i picchi diminuiscono drasticamente, hai una pista concreta.
Poi puoi testare:
Wi-Fi → Ethernet
Se il problema scompare anche via Ethernet, hai ulteriormente ristretto il campo.
Questo è molto più affidabile di una guida che dice semplicemente:
"Disattiva tutti i servizi Windows."
17. Per il gaming, guarda anche il frame time
La latenza DPC non deve essere analizzata isolatamente.
Per i problemi di stuttering, puoi affiancare:
LatencyMon + MSI Afterburner/RivaTuner
e osservare il frame time.
Per esempio:
Frame time normale:
8.3 ms
8.4 ms
8.3 ms
8.4 ms
Picco:
8.4 ms
8.3 ms
35 ms ← stutter
8.4 ms
Se contemporaneamente compare un enorme picco DPC, hai una correlazione interessante.
Se invece:
Frame time → perfettamente regolare
DPC → occasionalmente alto
potrebbe non esserci alcun problema percepibile nel gaming.
In pratica
Quando analizzi la latenza DPC, pensa così:
Non chiederti "qual è il numero più basso possibile?"
Chiediti:
"Quale driver genera picchi quando si verifica esattamente il problema che sto cercando di risolvere?"
Nessun commento:
Rispondi commenti