Какой лучший инструмент для отслеживания использования памяти процессом в течение длительного периода времени в Windows? - PullRequest
1 голос
/ 19 сентября 2008

Что является лучшим доступным инструментом для мониторинга использования памяти моей службой Windows C # /. Net в течение длительного периода времени. Насколько я знаю, такие инструменты, как perfmon, могут отслеживать использование памяти в течение короткого периода времени, но не графически в течение длительного периода времени. Мне нужны данные трендов за дни, а не за секунды.

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

Ответы [ 7 ]

5 голосов
/ 19 сентября 2008

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

Например, если вы хотите отслеживать процесс:

  • в течение 1 часа: я бы использовал интервалы в 1 секунду (это сгенерирует 60 * 60 выборок)
  • в течение 1 дня: я бы использовал 30-секундные интервалы (это сгенерирует 2 * 60 * 24 выборки)
  • в течение 1 недели: я бы использовал интервалы в 1 минуту (это сгенерирует 60 * 24 * 7 образцов)

С этими интервалами выборки у Perfmon не должно возникнуть проблем при генерации хорошего графического вывода ваших счетчиков.

3 голосов
/ 19 сентября 2008

Ну, я использовал perfmon, экспортировал результаты в csv и впоследствии использовал Excel для статистики. В прошлый раз это работало очень хорошо, когда мне нужно было следить за процессом

1 голос
/ 19 сентября 2008

Так же, как мониторинг памяти сам по себе, вы, вероятно, думаете о профилировании памяти для выявления утечек или устаревших объектов - http://memprofiler.com/ - хороший выбор, но есть множество других.

Если вы хотите сделать что-то очень конкретное, не бойтесь писать свой собственный регистратор на основе WMI, работающий на таймере - вы можете получить это, чтобы отправлять по электронной почте вам обработку статистики, предупреждать, когда она становится слишком быстрой или слишком высокой, отправить его в виде XML для построения графиков и т. д.

1 голос
/ 19 сентября 2008

Игра с управлением компьютером (при условии, что вы используете Windows здесь), и кажется, что вы можете заставить его отслеживать процесс с течением времени. Перейдите в раздел «Управление компьютером» -> «Журналы производительности и оповещения» и посмотрите журналы счетчика / трассировки. Щелкните правой кнопкой мыши на счетчике журналов и добавьте новый журнал. Теперь нажмите добавить объект и выберите память. Теперь нажмите «Добавить счетчики» и измените «Объект производительности» на «Процесс» и выберите свой процесс.

0 голосов
/ 21 сентября 2008

Я бы рекомендовал использовать .Net Memory Validator из программного обеспечения проверки. Этот инструмент помог мне решить множество различных проблем, связанных с управлением памятью в приложении .Net, с которым мне приходилось работать.

Я чаще использую версию C ++, но они очень похожи, и тот факт, что вы действительно можете видеть в реальном времени тип выделяемых объектов, будет для вас неоценим.

0 голосов
/ 19 сентября 2008

Если вы знакомы с Python, довольно легко написать скрипт для этого.

Activestate Python (который бесплатный) предоставляет соответствующие части Win32 API через модуль win32process .

Вы также можете проверить все связанные с win32 модули или использовать gotAPI для просмотра стандартных библиотек Python.

0 голосов
/ 19 сентября 2008

Я использовал ProcessMonitor, если вам нужно что-то более мощное, чем perfmon.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...