Вычисление средних чисел со счетчиками производительности

Я сделал, чтобы сервис обработал, и я хочу использовать счетчики производительности для публикации среднего времени, когда он берет для выполнения задач. Я использую AverageTimer32 в противоречии с, делают это.

Это почти прокладывает себе путь, я хочу, но не совсем: Когда я увеличу счетчик, он кратко натолкнется до значения, которое я ожидаю (смотрящий в Мониторе производительности), но затем он раскрывается назад для обнуления.

Так, счетчик является нулем, я выполняю задачу, задача завершается, счетчик кратко увеличивает (к правильному значению), но затем это почти сразу отступает к нулю.

Я использую AverageTimer32, отвечают AverageBase как знаменатель. Я увеличиваю AverageBase к 1 каждому разу, когда я запускаю задачу, и затем я увеличиваю AverageTimer32 количеством галочек для завершения каждый раз, когда я заканчиваю задачу. Кто-либо может дать мне нажатие?

15
задан Matthew Murdoch 19 September 2012 в 12:06
поделиться

1 ответ

Оказывается, причина того, что я не мог сделать то, что я хотел, заключалась в том, что ни один из типов счетчиков производительности не обеспечивает автоматического вычисления скользящего среднего. («средние» счетчики вычисляют среднее значение на основе этого момента времени, например, «байтов в секунду»).

Я хотел получить среднее значение. Итак, я использовал счетчик производительности RawFraction.

У этого метода была одна проблема: формула делит результат на 100 для получения процента, и мне нужно было необработанное число (среднее количество операций, выполняемых в секунду).

Итак, я увеличивал знаменатель дроби на 100 для каждой 1 операции (компенсируя процентное вычисление).

Мой результат: теперь я могу отображать, сколько времени в среднем у меня уходит на выполнение задачи. Если моя служба не занята, среднее значение остается постоянным, так что вы можете увидеть долгосрочную тенденцию производительности моей службы.

17
ответ дан 1 December 2019 в 04:09
поделиться