windows - PdhExpandWildCardPath returnerer for mange stier

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at opnå CPU-udnyttelsen af ​​hver af (op til 200) tråde i min (Delphi XE) applikation. For at forberede mig på dette, videregiver jeg til PdhExpandWildCardPath en streng 'Thread(myappname/*)\% Processor Time'. Men (på Win7/64) returnerer bufferen, der returneres fra denne funktion, en streng for hver tråd, der kører i systemet, med andre ord, det synes at have behandlet indgangen som om den var 'Thread(*/*)\% Processor Time'. Dette var uventet. Det samme sker, når jeg efterfølgende udvider en streng for at få 'ID-tråd'.


Selvfølgelig kan jeg filtrere de resulterende strenge på applikationsnavnet og kun tilføje de tællere, jeg har brug for, men det kræver mange hundrede substringskanaler. Har jeg fejlfortolket hvordan vildkortene virker?

Bedste reference


Sen, men jeg har ramt den samme væg, måske har en anden brug for det:


Her er det: 'Thread(myappname*)\% Processor Time'


Specielt nyttigt med ProcessNameFormat indstillet til 2 og ThreadNameFormat indstillet til 2 i 'HKEY\_LOCAL\_MACHINESYSTEMCurrentControlSetServicesPerfProcPerformance'


For ProcessNameFormat=2 -> linket gælder det samme for ThreadNameFormat, selvom jeg ikke kunne finde nogen form for dokumentation. [5]