New submission from Eryk Sun <eryk...@gmail.com>:

In bpo-44336, a new version of WindowsLoadTracker was implemented in 
Lib/test/libregrtest/win_utils.py. This version resolves issues with the 
previous implementation that spawned typeperf.exe. The new implementation uses 
the registry API's HKEY_PERFORMANCE_DATA pseudohandle to access the performance 
counters. This requires hard-coding "2" as the key name of the system object, 
44 as the index of the "Processor Queue Length" counter, and also several 
struct definitions. 

The HKEY_PERFORMANCE_DATA 'key' just wraps the API as an alternate way to 
consume counter data. Instead of taking this detour through a minimalist 
interface just to use the API in a roundabout way, it would be better to 
implement a few of the Performance Data Helper functions in _winapi. I've 
implemented a prototype in ctypes to demonstrate this, which I'm attaching as 
"loadtracker.py". The functions that would need to be implemented are 
PdhOpenQueryW(), PdhAddEnglishCounterW(), PdhCollectQueryData(), 
PdhGetRawCounterValue(), and PdhCloseQuery().

----------
components: Windows
files: loadtracker.py
messages: 415808
nosy: eryksun, jkloth, paul.moore, steve.dower, tim.golden, zach.ware
priority: normal
severity: normal
status: open
title: Use the PDH API in WindowsLoadTracker
type: enhancement
Added file: https://bugs.python.org/file50696/loadtracker.py

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue47096>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to