Il peut arriver qu’un pilote, logiciel ou autre élément de votre PC provoque des latences matérielles qui ont pour effets des pertes de freez, blocage du PC, des bégaiements du PC ou des jeux ou encore le son qui grésillement.
L’exécution en temps du matériel peut se mesurer par la latence DPC (Deferred Procedure Call) disponibles dans toutes les versions de Windows : Windows 10, Windows 11, et même Windows 7 et 8.
Ce tutoriel complet vous explique ce qu’est la latence DPC, comment vérifier et améliorer la latence matérielle sur Windows.
Table des matières
DPC et exécution en temps réel des périphériques audio et vidéo sur Windows
Voici quelques explications un peu techniques pour comprendre le fonctionnement de Windows et des périphériques.
Windows n’est pas un système d’exploitation en temps réel. Toutes les demandes adressées au système d’exploitation sont transmises au mieux.
Il n’y a aucune garantie que les demandes soient livrées dans un certain délai, qui sont les caractéristiques d’un système d’exploitation en temps réel.
Ce n’est pas un problème pour la plupart des appareils et des tâches, mais c’est une mauvaise nouvelle pour les applications audio (considérées comme temps réel) car elles doivent fournir des données au sous-système et au matériel dans les tampons plusieurs fois par seconde.
Si un ou plusieurs tampons manquent leurs délais et ne sont pas livrés à temps, cela a des conséquences audibles qui sont reconnues comme des abandons, des clics et des pops.
Il faut donc éviter ces abandons qui peut causer des freez ou bégaiements durant les jeux.
Cela peut aussi provoquer des grésillements du son.
Pour palier à cela, Windows a mis en place DPC (Deferred Procedure Call) qui est une liste d’attente avec des priorités pour chaque processeur.
Un pilote peut créer une tâche dans la liste d’attente avec une priorité élevée, moyenne ou basse.
Par défaut, toutes les DPC ont une priorité moyenne. Lorsque le processeur rencontre une interruption (IRQL : Interrupt Request Level) correspondant à l’ordonnancement des tâches/DPC, il consulte la file d’attente des procédures d’appels différées et les exécute progressivement jusqu’à épuisement de la file d’attente ou jusqu’à ce qu’une autre interruption de priorité plus élevée soit rencontrée.
Qu’est-ce que DPC et ISR
Voici quelques explications techniques plus détaillées sur le fonctionnement DPC et ISR pour les curieux.
Le séparateur de threads Windows (également appelé ordonnanceur), qui fait partie du noyau, exécute les threads selon un schéma de priorité.
Les threads avec une priorité plus élevée recevront un temps d’exécution plus long (également appelé tranche quantique ou tranche de temps) que les threads avec une priorité inférieure. Cependant, le noyau connaît également d’autres types d’unités d’exécution appelées routines de service d’interruption (ISR). Les périphériques connectés au système peuvent s’interrompre sur un processeur connecté et provoquer l’exécution de leurs routines de service d’interruption.
Une interruption peut se produire sur le même processeur que celui sur lequel un programme audio est exécuté. Tout thread qui s’exécutait sur le processeur sur lequel une interruption s’est produite sera temporairement arrêté, quelle que soit sa priorité. La routine de service d’interruption (ISR) est exécutée et peut planifier un appel de procédure différée (DPC) pour décharger une quantité de travail. Le DPC s’exécutera probablement immédiatement sur le même processeur, ce qui signifie que l’application audio s’arrêtera jusqu’à ce que l’exécution des routines ISR et DPC soit terminée.
C’est parce que les ISR et les DPC s’exécutent à une IRQL élevée, ce qui signifie qu’ils ne peuvent pas être préemptés par le répartiteur de threads (planificateur).
Par conséquent, pour garantir la réactivité du système, les routines ISR et DPC doivent s’exécuter aussi rapidement que possible.
Les directives indiquent qu’ils ne doivent pas passer plus de 100 µs de temps d’exécution, mais cela n’est souvent pas possible en raison de facteurs matériels indépendants de la volonté du développeur du pilote. Si le temps d’exécution devient trop élevé, le programme audio risque de ne pas pouvoir transmettre les tampons audio au matériel en temps opportun.
Comment mesurer la latence DPC
Vous pouvez mesurer et vérifier la latence DPC.
Le but est de s’assurer qu’aucun abandon a lieu et vous permet de s’assurer que votre configuration est relativement bonne et optimiser pour les jeux.
Enfin vous obtenez la latence DPC en micro-secondes afin de pouvoir comparer les optimisations.
Le test de latence doit être effectué avec vos applications fermées comme si vous étiez en condition de jeux et pendant au minimum 1 minute mais 2 à 4 minutes étant l’idéal.
LatencyMon
LatencyMon affiche les latences les plus élevées d’un timer du noyau et signale les temps d’exécution les plus élevés des routines ISR et DPC ainsi que des défauts de fautes matérielles.
Il permet de vérifier si des routines DPC appartenant à un pilote exécuté dans votre système semblent s’exécuter trop longtemps.
Enfin, il crée un rapport compréhensible qui affiche également toutes les données échantillonnées de manière détaillée, ce qui vous permet d’effectuer une analyse approfondie.
Analyseur de performances
L’analyseur de performances de Windows permet de grapher des informations sur les DPC dans la partie processeur.
L’outil Xperf permet aussi de grapher les latences DPC.
Task Manager DeLuxe
Task Manager DeLuxe donne aussi des infos sur la latence DPC et les interruptions.
Qu’est ce qui provoque des latences DPC
Voici une liste des sources des latences DPC :
Un pilote qui ne respecte pas le standard DPC comme :
- Un pilote réseau comme le Wifi ou Ethernet
- Les pilotes Modem
- Les pilotes de son
- N’importe quelle carte PCI ou PCI Express,, PCCard ou ExpressCard
Malheureusement, si le pilote est trop ancien et ne respecte pas ce standard, vous ne pourrez pas corriger la latence DPC.
Bien sûr, l’environnement logicielle de Windows joue beaucoup. Si votre Windows est en mode “poubelle” avec beaucoup d’applications qui se lancent au démarrage, cela va se ressentir.
Certaines applications basses comme l’antivirus peuvent effectuer des appels DPC qui vont encombrer la liste d’attente et provoquer des freez durant vos jeux.
N’hésitez pas à tester le mode jeu de votre antivirus avec les outils précédemment cités.
La mesure reflète donc dans un premier temps votre hygiène informatique et l’état de votre Windows.
Si vous regardez les captures d’écran précédentes de LatencyMon, vous verrez par exemple qu’Acronis qui charge des pilotes utilise la liste d’attente DPC.
Mais surtout, on voit des pilotes systèmes de Windows et aussi de la carte graphique.
Un tour sur Google Images permet de voir que beaucoup d’utilisateurs ont des problèmes de latences avec des mesures importantes et des barres rouges.
Comment améliorer la latence DPC
Lancez les tests pendant 1 minute avec toutes les applications fermées.
Vérifiez les pilotes dans LatencyMon, si un pilote pose problème, vous pouvez désactiver ce dernier depuis
Vous pouvez donc suivre les conseils suivants :
De manière générale, il faut que Windows ne soit pas encombré.
Vous pouvez donc suivre ces guides :
Pour les gamers, poursuivez avec ce guide complet : Optimiser Windows 10 pour gagner des FPS dans les jeux : le guide complet.
Enfin, vous pouvez réduire assez significativement la latence DPC du pilote NVIDIA en utilisant le logiciel Timer Resolution.
Ce dernier modifie le timer de Windows qui est par défaut trop élevé.
Il faut lancer l’application Timer Resolution puis cliquez sur Maximum.
Vérifiez bien entendu si cela ne cause pas des plantages ou autres.
Ci-dessus, un exemple avec à gauche sans Timer Resolution et à droite avec.
Il semblerait aussi que le réglage des options d’alimentation de Windows et du parking UC jouent.
On obtient de meilleurs scores avec les options d’alimentation de Windows au maximale :
L’activation HPET mentionnée sur la page pour optimiser Windows pour vos jeux peut aussi jouer. ou pas.
Il faut tester tous ces éléments pour voir les impacts qui peuvent différer d’une configuration matérielle à l’autre.
Liens
- Comment optimiser son PC pour les jeux : le dossier
- Les réglages graphiques des jeux vidéo : le dossier
- Les composants hardware et matériel d’un PC : Le dossier
- Comment accélérer Windows 11
- Guide complet comment optimiser et accélérer Windows 10
- Optimiser les options d’alimentation du processeur sur Windows
- Optimiser Windows 10 pour gagner des FPS dans les jeux : le guide complet
- Améliorer/réduire la latence (ping) dans les jeux
- CFosSpeed : accélérer la vitesse de sa connexion internet et latence/ping