Инструменты профиля памяти рабочего процесса ASP.Net - PullRequest
5 голосов
/ 13 июня 2009

У нас есть довольно большой объем ASP.Net-сайта, написанного на c # с использованием MS commerce server, работающего в 32-битной среде. Я вижу рабочий процесс до 980 мегабайт довольно часто. Я хотел бы профилировать этот процесс и определить, где можно получить какие-либо выгоды в коде, чтобы уменьшить объем памяти этого сайта. Мой вопрос, какие инструменты хорошо сработали для вас, когда вы делаете подобные вещи в веб-приложениях ASP.Net?

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

[править]

До сих пор кажется, что консенсус заключается в том, что между Ants и JetBrains возникли проблемы. Кто-нибудь использовал оба? Если да, то какой из них лучше, или каковы плюсы и минусы каждого?

Ответы [ 7 ]

7 голосов
/ 13 июня 2009

ANTS Profiler отлично подходит для профилирования приложений ASP.NET.

7 голосов
/ 06 июня 2017

Есть свободный путь.

  • запустить диспетчер задач
  • щелкните правой кнопкой мыши по процессу w3wp
  • выберите "создать дамп" (я поражен тем, как мало людей знают об этой функции - в том числе и я в какой-то момент!)
  • скопировать файл дампа на локальный компьютер (чтобы мы не беспокоили рабочий сервер)
  • открыть файл в Visual Studio
  • наслаждаться
  • выберите «Отладка управляемой памяти» для расширенного просмотра, какой класс использует память и т. Д.

AFAIK, для вышесказанного требуется выпуск Visual Studio "Ultimate" (наверное, теперь он называется "Enterprise"?). Если у вас его нет, выполните следующие действия (тоже очень просто)

  • запуск WinDbg (бесплатный инструмент, часть Windows SDK, здесь, в StackOverflow, есть множество ответов на вопрос о том, как загрузить WinDbg без всех программ SDK)
  • Нажмите Ctrl + D и загрузите файл дампа в WinDbg
  • type .loadby sos clr (при этом загружается SOS.dll, которая позволяет WinDbg анализировать процессы .NET, SOS.dll является частью NET Framework, поэтому, вероятно, она у вас уже есть)
  • type !dumpheap -stat (это выведет имена классов, отсортированные по использованию памяти, в порядке возрастания. Пропуск system.string и system.byte[] классов приводит к тому, что это побочные эффекты, а не причина ...)

ОБНОВЛЕНИЕ ОТ 2019: WinDbg теперь доступен через MS Store, просто найдите «WinDbg», затем пару кликов и его там.

3 голосов
/ 13 июня 2009
1 голос
/ 13 июня 2009

Также рассмотрим AQTime от Automated QA.

1 голос
/ 13 июня 2009

Что-то вроде ANTS memory profiler может быть полезно для вас.

0 голосов
/ 13 июня 2009

dotTrace от JetBrains спасли меня несколько раз. Это не бесплатно (доступна пробная версия), но это действительно мощный!

0 голосов
/ 13 июня 2009

Мы используем AviCode , и он хорошо работает для нас.

...