Часто говорят, что диспетчер задач не дает точного указания того, сколько памяти используется процессом.
Если это действительно так, то как проще всего это выяснить?
Я хотел бы знать:
- Общее количество используемой памяти (в оперативной памяти или в подкачке или как угодно)
- Общее количество используемой оперативной памяти (работает в ситуации, когда на компьютере много свободного физического ОЗУ, поэтому принудительное извлечение данных, как мы надеемся, не является проблемой)
- Общая память, фактически используемая программой (не считая дополнительных затрат, которые хранит GC)
- Общее использование памяти, которое используется только моей программой (не считая разделяемые библиотеки / разделяемую память)
- Общее использование общей памяти.
Захватите Process Explorer , щелкните правой кнопкой мыши -> Свойства процесса в списке и перейдите на вкладку «.NET». Выберите «.NET CLR Memory» из выпадающего списка, и у вас будет больше оперативной информации о вашем процессе, чем вы будете знать, что делать;)
Есть некоторые вещи, которые вы можете сделать, но я считаю, что лучше всего, если вы серьезно относитесь к профилированию своего приложения, это использовать Ants Profiler от Red Gate:
http://www.red-gate.com/Products/ants_profiler/index.htm
Это программное обеспечение действительно всеобъемлющее и даст хорошее представление о том, какие виды использования памяти и другие виды метрик предоставляет ваше приложение.
http://memprofiler.com/ - очень хороший профилировщик памяти .Net. Но встроенная Microsoft в Windows Performance Monitor (perfmon) также даст вам эти цифры. См. Http://dotnetdebug.net/2005/06/30/perfmon-your-debugging-buddy/ для этого.
Запустите Performance Monitor (perfmon.exe) и взгляните на объект производительности .Net CLR Memory. Каждая запущенная программа .net имеет свой экземпляр. Вы должны быть в состоянии найти то, что вы хотите там.
Process Explorer покажет вам это, если вы дважды щелкните по процессу.
В SysInternals ProcessExplorer есть несколько полезных функций, включая профилировщик .NET, хотя ANTS - это то, что вам нужно, если вам нужен профессиональный инструмент.
Я также использую memprofiler, и это очень помогло нам.