2008-12-10 20 views
7

Parece que a menudo se dice que el Administrador de tareas no proporciona una indicación precisa de la cantidad de memoria que utiliza un proceso.¿Cómo puedo determinar cuánta memoria está usando mi programa .NET?

Si este es realmente el caso, ¿cuál es la forma más fácil de encontrar estas cosas?

me gustaría saber:

  • memoria total en uso (ya sea en la memoria RAM o paginado o lo que sea)
  • memoria RAM total en uso (que se ejecuta en una situación en la que la máquina tiene un montón de libre física RAM, por lo que las cosas que se publican a la fuerza con suerte no son un problema)
  • Memoria total realmente utilizada por el programa (sin contar la sobrecarga adicional que mantiene el GC)
  • Uso total de memoria que solo uso mi programa (no contar bibliotecas compartidas/memoria compartida)
  • Uso total de la memoria compartida.

Respuesta

8

Grab Process Explorer, haga clic derecho -> Propiedades del proceso en la lista, y luego haga clic en la pestaña ".NET". Seleccione ".NET CLR Memory" en el cuadro combinado, y tendrá más información en vivo sobre su proceso de lo que sabrá qué hacer;)

+0

Esa información proviene de los Contadores de rendimiento. También puede ver los contadores de rendimiento con perfmon. –

+0

Es cierto, pero creo que Process Explorer es una herramienta más conveniente, incluso si * es * una instalación adicional:} – moobaa

1

Hay algunas cosas que puede hacer, pero creo que lo mejor que hay, si usted es serio sobre el perfil de su aplicación, es utilizar el Analizador de hormigas por Red Gate:

http://www.red-gate.com/Products/ants_profiler/index.htm

Este software es realmente completo y brindará una buena idea del tipo de uso de memoria y otros tipos de métricas que presenta su aplicación.

1

Inicie el Monitor de rendimiento (perfmon.exe) y eche un vistazo a el objeto de rendimiento de memoria .Net CLR. Cada programa .net en ejecución tiene su propia instancia. Debería poder encontrar lo que quiere allí.

0

Hay algunas buenas características en el SysInternals ProcessExplorer, incluido un generador de perfiles .NET, aunque ANTS es el camino a seguir si necesita una herramienta profesional.

0

Uso el memprofiler también y nos ayudó muchísimo.

Cuestiones relacionadas