Я сделал, чтобы сервис обработал, и я хочу использовать счетчики производительности для публикации среднего времени, когда он берет для выполнения задач. Я использую AverageTimer32 в противоречии с, делают это.
Это почти прокладывает себе путь, я хочу, но не совсем: Когда я увеличу счетчик, он кратко натолкнется до значения, которое я ожидаю (смотрящий в Мониторе производительности), но затем он раскрывается назад для обнуления.
Так, счетчик является нулем, я выполняю задачу, задача завершается, счетчик кратко увеличивает (к правильному значению), но затем это почти сразу отступает к нулю.
Я использую AverageTimer32, отвечают AverageBase как знаменатель. Я увеличиваю AverageBase к 1 каждому разу, когда я запускаю задачу, и затем я увеличиваю AverageTimer32 количеством галочек для завершения каждый раз, когда я заканчиваю задачу. Кто-либо может дать мне нажатие?
Оказывается, причина того, что я не мог сделать то, что я хотел, заключалась в том, что ни один из типов счетчиков производительности не обеспечивает автоматического вычисления скользящего среднего. («средние» счетчики вычисляют среднее значение на основе этого момента времени, например, «байтов в секунду»).
Я хотел получить среднее значение. Итак, я использовал счетчик производительности RawFraction.
У этого метода была одна проблема: формула делит результат на 100 для получения процента, и мне нужно было необработанное число (среднее количество операций, выполняемых в секунду).
Итак, я увеличивал знаменатель дроби на 100 для каждой 1 операции (компенсируя процентное вычисление).
Мой результат: теперь я могу отображать, сколько времени в среднем у меня уходит на выполнение задачи. Если моя служба не занята, среднее значение остается постоянным, так что вы можете увидеть долгосрочную тенденцию производительности моей службы.