#c# #performancecounter
#c# #performancecounter
Вопрос:
У меня есть веб-сервис, который создает собственные счетчики производительности в одном экземпляре. Когда пул завершает работу (или повторно использует / перезапускает IIS) и перезапускается perfmon, все мои счетчики int64 возвращаются к 0. Есть ли способ создать категорию и / или счетчики, чтобы они «выдерживали» завершение работы приложения?
Комментарии:
1. Почему вы хотите, чтобы это предполагаемое поведение было изменено? Когда вы вносите изменения в конфигурацию, это может отразиться на вашей производительности и поэтому не будет отображаться в счетчиках производительности, если вы их не сбросите. Объясните это, пожалуйста.
2. Это зависит от того, что вы отслеживаете. Я говорю о счетчике Int64, который увеличивается каждый раз, когда происходит определенное событие. И я вообще не хочу, чтобы этот счетчик сбрасывался на 0. Думайте об этом как об истории (журнале), а не о мониторинге в реальном времени.
Ответ №1:
Есть ли способ создать категорию и / или счетчики, чтобы они «выдерживали» завершение работы приложения?
Да, но только путем реализации счетчиков производительности с нуля с использованием Win32 API, а для компонента, который PerfMon (или remoting of perf mon) использует для считывания значений для отображения, это должен быть полностью машинный код.
На практике будет проще обеспечить собственное сохранение значений и установить начальные значения счетчиков при запуске (и это может сохраняться при таких вещах, как перезапуск компьютера, если это необходимо).