Encuentra y repara pérdidas de memoria en Windows 10

A Pérdida de memoria es una mala ubicación de recursos en un programa de computadora debido a una asignación de memoria defectuosa. Ocurre cuando una ubicación de RAM que no está en uso permanece sin publicar. Una pérdida de memoria no debe confundirse con una pérdida de espacio, que se refiere a un programa que utiliza más RAM de la necesaria. Se dice que se produjo una pérdida de memoria en un sistema Windows 10/8/7 cuando la memoria simplemente no es accesible a pesar de no estar en uso.

Fugas de memoria en Windows 10

Antes de comenzar, debe saber que la pérdida de memoria es un problema de software para depurar, por ejemplo, en Java, JavaScript, C / C ++, Windows, etc. No es necesario reemplazar físicamente la RAM o el disco duro.

Pérdida de memoria en Windows 10

Porque es malo

Es obvio que una pérdida de memoria es mala porque es un error, una falla en el sistema. Pero averigüemos cómo afecta exactamente al sistema:

  1. Dado que la memoria no se libera incluso cuando no está en uso, se agota la memoria.
  2. El agotamiento de la memoria da como resultado el envejecimiento del software.
  3. La memoria disponible reducida conduce a un mayor tiempo de respuesta y un rendimiento deficiente del sistema.
  4. Una pérdida de memoria no comprobada puede eventualmente provocar el bloqueo de una aplicación.

Para identificar una fuga de memoria, un programador debe tener acceso al código fuente del programa.

Localizando la fuga

Para resolver un problema, primero debemos identificarlo. Los pasos básicos para localizar una pérdida de memoria son:

  1. Afirmación: Determinar si se ha producido una fuga.
  2. Encontrar pérdida de memoria en modo Kernel: Localización de una fuga causada por un componente de controlador en modo kernel.
  3. Encontrar pérdida de memoria en modo de usuario: Localizar una fuga causada por un controlador o una aplicación en modo de usuario.

Asignación de memoria

Existen diferentes modos en los que las aplicaciones asignan RAM. Si no se libera espacio después del uso, la pérdida de memoria se producirá independientemente del modo de asignación. Algunos patrones de asignación comunes son:

  1. Función HealAlloc para la asignación de memoria del montón. Los equivalentes en tiempo de ejecución de C / C ++ son malloc y new.
  2. Función VirtualAlloc para asignación directa desde SO.
  3. API de Kernel32 para mantener la memoria del kernel para la aplicación. Ejemplo, CreateFile, CreateThread.
  4. API de User32 y API de Gdi32.

Prevenir pérdidas de memoria

Todos sabemos que es mejor prevenir que curar, así que aquí hay algunas formas de prevenir una pérdida de memoria.

Seguimiento de hábitos

Fugas de memoria en Windows 10

Debe estar atento al uso anormal de RAM por parte de programas y aplicaciones individuales. Puede ir al Administrador de tareas de Windows presionando CTRL + MAYÚS + ESC y agregar las columnas como Controles, Objetos de usuario, Objetos GDI, etc.

Esto le ayudará a controlar fácilmente el uso de recursos.

Leer: ¿Cuáles son los tipos de memoria en una computadora?

Herramientas de Microsoft para diagnosticar pérdidas de memoria

Varias herramientas diagnostican pérdidas de memoria para varios modos de asignación:

  1. Application Verifier diagnostica las fugas de pila.
  2. UMDH (un componente de las herramientas de depuración de Windows) diagnostica fugas para procesos individuales al monitorear las asignaciones de memoria del montón.
  3. Trace Capture para un análisis exhaustivo del uso de RAM.
  4. Xperf también rastrea los patrones de asignación de montones.
  5. CRT Debug Heap no solo rastrea las asignaciones de montón, sino que también permite prácticas de codificación para minimizar las fugas.
  6. JavaScript Memory Leak Detector depura las pérdidas de memoria en los códigos.

Consejos de uso

  1. Usar kernel ENCARGARSE DEsy otros punteros inteligentes para recursos de Win32 y asignaciones de montón.
  2. Obtenga clases para la administración automática de recursos para asignaciones de kernel de la biblioteca ATL. El estándar C ++ tiene auto_ptr para asignaciones de montón.
  3. Encapsule los punteros de la interfaz COM dentro de «punteros inteligentes» con la ayuda de _com_ptr_t o _bstr_t o _variante_t.
  4. Supervise el código .NET para detectar un uso anormal de la memoria.
  5. Evite múltiples rutas de salida para que las funciones permitan que las asignaciones se liberen de las variables en la mayoría de los bloques al final de una función.
  6. Use excepciones nativas solo después de liberar todas las asignaciones en el bloque _finally. Envuelva todo el montón y maneje las asignaciones en punteros inteligentes para usar las excepciones de C ++.
  7. Siempre llame al PropVariantClear función antes de reinicializar o descartar un objeto PROPVARIANT.

Solución de problemas de fugas de memoria en Windows

Al igual que las diversas formas de prevenir pérdidas de memoria, existen varias formas de detener las pérdidas de memoria. Pero antes de comenzar, recuerde crear primero un punto de restauración del sistema.

1]Cierre los procesos y reinicie.

Si ve que un proceso innecesario está ocupando demasiada RAM, puede finalizar el proceso en el Administrador de tareas. Deberá reiniciar el dispositivo para que el espacio liberado esté disponible para que lo utilicen otros procesos. Sin un reinicio, el problema de pérdida de memoria no se resolverá. Un proceso en particular que tiene errores para ralentizar la PC es Runtime Broker. Pruebe si deshabilitar eso solo funciona.

2]Herramientas de diagnóstico de memoria

Diagnóstico de memoria de Windows

Para acceder a la herramienta de diagnóstico de memoria incorporada para Windows:

  1. Guarde todo su trabajo importante.
  2. Prensa Win + R para abrir el Correr ventana.
  3. Escribe el comando mdsched.exe en el Correr ventana.
  4. Reinicie la PC.
  5. Después de un reinicio, realice un escaneo básico o vaya al ‘Avanzado‘opciones como’Mezcla de prueba‘ o ‘Número de pases‘.
  6. Prensa F10 para iniciar la prueba.

Estas siguen siendo soluciones temporales.

3]Buscar actualizaciones de controladores

Actualizar el software del controlador

Los controladores obsoletos provocan pérdidas de memoria. Mantenga todos los controladores actualizados:

  1. Prensa Win + R y abre el Correr ventana. Escribe devmgmt.msc y presione Entrar. Te llevará a la Administrador de dispositivos.
  2. Busque controladores desactualizados y actualícelos todos.
  3. Para obtener actualizaciones, es posible que se haya perdido, consulte Windows Update.

Esto fue sencillo.

4]Optimizar el rendimiento

Ajustarse para un mejor desempeño

Ajustar Windows para el rendimiento gestionará todo, incluida la programación del procesador y el uso de la memoria para detener las pérdidas de memoria. Sigue estos pasos:

  1. Haga clic derecho en ‘Esta PC‘y seleccione’Avanzado‘configuración en el panel izquierdo.
  2. Bajo la ‘Avanzado‘pestaña, ir a’Rendimiento‘, seguido por ‘Ajustes‘.
  3. Controlar ‘Ajustarse para un mejor desempeño‘y haga clic en OK.
  4. Reinicie y verifique si el problema está resuelto.

Si esta sencilla solución no funcionó, pruebe la siguiente solución.

5]Desactive los programas que se ejecutan al iniciar

Programas de inicio

Deshabilitar los programas problemáticos es la única forma de deshacerse del problema de pérdida de memoria. Vaya al Administrador de tareas y desactive el programa problemático. Si no sabe qué programas están creando el problema, haga esto:

  1. Ir ‘Administrador de tareas‘.
  2. Ir ‘Puesta en marcha‘.
  3. Desactive los programas de inicio que no necesita ejecutar de forma predeterminada.

6]Desfragmentar disco duro

Desfragmentación de disco

Aunque Windows 10 hace esto automáticamente, es posible que deba desfragmentar los discos duros ocasionalmente para optimizar el rendimiento:

  1. Ir ‘Esta PC‘ o ‘Mi computadora‘.
  2. Haga clic con el botón derecho en el disco duro del sistema (generalmente unidad C :).
  3. Ir ‘Instrumentos‘ debajo ‘Propiedades‘y seleccione’Optimizar‘.
  4. Seleccione la unidad para desfragmentar y seleccione ‘Analizar‘.

Reinicie su computadora después de la nueva fragmentación.

7]Archivo ClearPage al apagar

Se está volviendo complejo ahora, pero no se preocupe. Aquí se explica cómo borrar el archivo de página cada vez que se apaga:

  • Escriba regedit en Buscar para iniciar el Editor del registro.
  • Ingrese esta ruta:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
  • Cambie el valor de ClearPageFileAtShutDown a ‘1’.
  • Guarde los cambios y reinicie el dispositivo.

Esto debería ser suficiente. Recuerde que su proceso de apagado llevará un poco más de tiempo.

9]Desactivar Superfetch

Este servicio de Windows optimiza el rendimiento minimizando el tiempo de arranque. Permite a Windows administrar el uso de RAM. La vida después de deshabilitar Superfetch no es conveniente, pero hágalo si es necesario. Al menos intente esto solo para aislar el problema:

  1. Busque services.msc y vaya al Administrador de servicios.
  2. Buscar ‘Superfetch‘y haga clic derecho para ir a’Propiedades‘.
  3. Seleccione ‘Detener‘.
  4. También ‘Desactivar‘el servicio del menú desplegable.
  5. Reinicie la PC y verifique si el rendimiento ha mejorado.

Habilite Superfetch si este no funcionó.

10]Compruebe si hay software malicioso

Utilice un software antivirus de terceros o el Windows Defender interno de Windows 10 para escanear y eliminar el malware. Asegúrese de que el antivirus esté actualizado para ser compatible con su sistema operativo, de modo que no termine convirtiéndose en el motivo de la pérdida de memoria.

Todas las soluciones que pueda necesitar para encontrar o prevenir pérdidas de memoria están aquí. Puede leer más sobre fugas de memoria en MSDN y Microsoft.

Fugas de memoria en Windows 10

Te puede interesar

Deja un comentario