Контекст
- Профилирование ресурса, используемого приложением .NET во время теста производительности
- Инкапсуляция извлеченных метрик в существующий инструмент производительности
- Метрикачастота дискретизации составляет приблизительно 5 секунд
Возможное решение
Анализируя возможности WMI и PowerShell, я понял, что могу использовать их для генерации потока данныхс необходимыми метриками с помощью команды Get-WmiObject .
Сомнение
Копание в доступных классах WMI, ориентированных на "мир NETCLR" Я обнаружил, по-видимому,дублирование имен классов:
- Win32_PerfFormattedData_<class_name>
- Win32_PerfRawData_<class_name>
Я добавляю пример PowerShell для фильтрации класса «Память»:
(Get-WmiObject -List | Where-Object { $_.Name -like '*NETCLR*Memory'}).ForEach({ $_.Name })
и получаю следующие классы:
- Win32_PerfFormattedData_NETFramework_NETCLRMemory
- Win32_PerfRawData_NETFramework_NETCLRMemory
эти два класса, очевидно, имеют одинаковую структуру / свойства.
Вопросы
- Кроме форматирования данных, два класса имеют больше различий?
- Возможно ли этоиспользовать их для профилинг под тестовое приложение?
С уважением