Compartir a través de


Usar perfmon para determinar si existe una fuga de memoria

Si el rendimiento de Windows se está degradando con el tiempo y sospecha que puede haber una pérdida de memoria, use el Monitor de rendimiento de Windows para investigar si hay una pérdida de memoria. Este proceso no le indicará cuál es el origen de la fuga, ni si es en modo de usuario o en modo kernel.

Para empezar, inicie el Monitor de rendimiento. Para abrir el Monitor de rendimiento, use uno de los procedimientos siguientes:

  • Abra el menú Inicio, busque Monitor de rendimiento y haga clic en el resultado
  • Use el método abreviado de teclado Windows Key + R para abrir el comando Ejecutar, escriba perfmon y haga clic en Aceptar para abrir.

Agregar contadores

Después de abrir el Monitor de rendimiento, agregue los siguientes contadores al gráfico principal del Monitor de rendimiento. Haga clic con el botón derecho en Monitor de rendimiento en Herramientas de supervisión y seleccione Propiedades.

  • Memoria-->Bytes de bloque no paginado

  • Memoria-->Bytes de bloque paginado

  • Archivo de paginación-->% de uso

Establecimiento de la duración para capturar suficiente actividad

Para capturar un gráfico de la fuga a lo largo del tiempo, establezca el tiempo Muestreo cada vez en 600 segundos para medir el valor cada diez minutos. Establezca Duración para capturar suficiente actividad. Por ejemplo, para establecerlo en 24 horas, el valor sería, 60*60*24 = 86,400. También puede registrar los datos en un archivo para examinarlos más tarde.

Inicio de la aplicación y supervisión

Inicie la aplicación o la prueba que cree que está causando la pérdida. Deje que la aplicación o la prueba se ejecute sin interrupciones durante algún tiempo; no utilice el equipo de destino durante este tiempo. Las fugas suelen ser lentas y pueden tardar horas en detectarse. Espere unas horas antes de decidir si se ha producido una fuga.

Supervise los contadores de Monitor de rendimiento. Una vez iniciada la prueba, los valores de los contadores cambiarán rápidamente y es posible que los valores de la memoria agrupada tarden algún tiempo en alcanzar un estado estable.

Las fugas de memoria en modo usuario siempre se localizan en el pool paginable y provocan que tanto el contador Bytes paginados del grupo y el contador Uso de archivo de paginación aumenten constantemente el tiempo. Las fugas de memoria en modo kernel suelen agotar el grupo no paginado, lo que provoca que el contador Bytes no paginados del grupo aumente, aunque la memoria paginable también puede verse afectada. Ocasionalmente, estos contadores pueden mostrar falsos positivos debido a que una aplicación está almacenando datos en caché.