Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
prog:lazarus:cas:windows:cpu [15/06/2023 15:54] thierry [root\WMI\ ProcessorPerformance] |
prog:lazarus:cas:windows:cpu [17/06/2023 17:03] (Version actuelle) thierry [GetSystemTimes] |
||
---|---|---|---|
Ligne 6: | Ligne 6: | ||
===== Via WMI ===== | ===== Via WMI ===== | ||
- | ==== Informations générales ==== | + | ==== Root\CIMV2\Win32_Processor ==== |
<code wql wql sur root/CIMV2> | <code wql wql sur root/CIMV2> | ||
Select * from Win32_Processor | Select * from Win32_Processor | ||
Ligne 60: | Ligne 60: | ||
</codedoc></codedoc> | </codedoc></codedoc> | ||
- | ==== Charge ==== | + | === LoadPercentage === |
- | Avec la requette WMI ci dessous, on récupére ''CurrentClockSpeed'' et ''LoadPercentage''. | + | Type - UInt16 |
+ | |||
+ | La propriété ''LoadPercentage'' indique la capacité de charge de chaque processeur **calculée sur la dernière seconde**.\\ Le terme 'processor loading' réfère à la charge de traitement totale supportée par chaque processeur en une fois. | ||
+ | === ProcessorId === | ||
+ | Type - String | ||
+ | |||
+ | La propriété ''ProcessorId'' contient des informations spécifiques au processeur qui décrivent ses fonctionnalités. Pour les processeurs de classe x86, le format du champ dépend de la prise en charge de l’instruction CPUID par le processeur.\\ | ||
+ | Si l’instruction est prise en charge, la propriété ''ProcessorId'' contient deux valeurs au format DWORD. | ||
+ | - La première (décalages 08h-0Bh) est la valeur EAX renvoyée par une instruction CPUID avec l’entrée EAX définie à 1. | ||
+ | - La deuxième (décalages 0Ch-0Fh) est la valeur EDX renvoyées par cette instruction. | ||
+ | |||
+ | Seuls les deux premiers octets de la propriété ''ProcessorID'' sont significatifs (tous les autres sont définis à 0) et contiennent (au format WORD) le contenu du registre DX à la réinitialisation du processeur. | ||
- | ''LoadPercentage'' retourne l'utilisation du processeur a l'instant T. | ||
- | ''CurrentClockSpeed'' la vitesse du CPU, mais n'a pas l'air de fluctuer comme on pourrait s'y attendre quand on regarde les performances dans le Gestionnaire de Tâches. | ||
- | <code wql wql sur root/CIMV2> | ||
- | Select CurrentClockSpeed,CurrentVoltage,LoadPercentage from Win32_Processor | ||
- | </code> | ||
- | <codedoc> | ||
- | instance of Win32_Processor | ||
- | { | ||
- | CurrentClockSpeed = 3600; | ||
- | CurrentVoltage = 10; | ||
- | DeviceID = "CPU0"; | ||
- | LoadPercentage = 6; | ||
- | }; | ||
- | </codedoc> | ||
==== Win32_PerfFormattedData_Counters_ProcessorInformation ==== | ==== Win32_PerfFormattedData_Counters_ProcessorInformation ==== | ||
<codedoc> | <codedoc> | ||
Ligne 256: | Ligne 253: | ||
===== Via PDH ===== | ===== Via PDH ===== | ||
Source : [[https://learn.microsoft.com/fr-fr/windows/win32/perfctrs/using-the-pdh-functions-to-consume-counter-data]] | Source : [[https://learn.microsoft.com/fr-fr/windows/win32/perfctrs/using-the-pdh-functions-to-consume-counter-data]] | ||
+ | ===== Via les API Windows ===== | ||
+ | ==== GetSystemTimes ==== | ||
+ | Source : [[https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-getsystemtimes]] | ||
+ | <code delphi jwawinbase.pas> | ||
+ | function GetSystemTimes(lpIdleTime, lpKernelTime, lpUserTime: LPFILETIME): BOOL; stdcall; | ||
+ | </code> | ||
+ | |||
+ | * **lpIdleTime** :\\ Un pointeur vers une structure FILETIME qui reçoit la durée d'inactivité du système. | ||
+ | * **lpKernelTime**:\\ Un pointeur vers une structure FILETIME qui reçoit le temps que le système a passé à s'exécuter en mode noyau (y compris tous les threads de tous les processus, sur tous les processeurs). Cette valeur de temps inclut également la durée d'inactivité du système. | ||
+ | * **lpUserTime**:\\ Un pointeur vers une structure FILETIME qui reçoit le temps que le système a passé à s'exécuter en mode utilisateur (y compris tous les threads de tous les processus, sur tous les processeurs). | ||
+ | |||
+ | |||