Что означают временные поля в CounterSample?
У меня есть экземпляр PerformanceCounter
, Я звоню NextSample()
на это и получить CounterSample
, В нем есть несколько связанных со временем полей: CounterFrequency, SystemFrequency, CounterTimeStamp, Timestamp и TimeStamp100nSec.
На странице MSDN для CounterSample есть только "Получает необработанную частоту счетчика" и аналогичные бесполезные описания, а также пример, который печатает значение без объяснений.
- Что это значит именно?
- В каких единицах они находятся? Я перепробовала все
DateTime.FromX()
функции, но ни один не дает разумного результата.
1 ответ
(sample2.Timestamp - sample1.Timestamp) / sample2.SystemFrequency = elapsed seconds
(sample2.TimeStamp100nSec - sample1.TimeStamp100nSec) / 10000000 = elapsed seconds
Я смог перепроектировать это, когда анализировал, как LOGMAN.EXE будет считывать счетчики перфектов и сохранять их в базе данных SQL. Класс CounterSample (из различных разборок) оборачивает эту структуру C
В этой структуре C SecondValue имеет TimeStamp или TimeStamp100nSec в зависимости от типа счетчика. К тому времени, когда он будет упакован в структуру.NET CounterSample, вы можете получить либо через свойства.