2009-06-12 3 views
4

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

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

[править]

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

+2

Связанные: http://stackoverflow.com/questions/3927/what-are-some-good-net-profilers – lance

ответ

7

ANTS Profiler очень хорошо разбирается в приложениях ASP.NET.

+0

Может ли этот инструмент обрабатывать производственный процесс? – James

+0

Я могу, но вам нужно запустить инструмент на самой производственной машине. –

3
+0

Да, это тот, который я обычно использую, если я не использую ANTS, но я не мог за всю жизнь помнить, что он называется! – RichardOD

+0

+ 1 Спасибо, я посмотрел на некоторые из их демо, и похоже, что у этого есть именно то, что я ищу. – James

0

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

+0

Интересно, не слышал об этом раньше. Я могу загрузить оценочную копию. – RichardOD

0

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

4

Существует бесплатный способ.

  • запуск менеджер задач
  • правой кнопкой мыши процесс w3wp
  • выберите «создать дамп» (я поражен, как мало люди знают об этой функции)
  • скопировать файл дампа в локальный машина (так что мы не беспокоить продуктивный сервер)
  • открыть файл в Visual Studio
  • наслаждаться
  • выберите «Debug Управляемая память» для продвинутых зрения, какой класс нас es и т. д.

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

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