Memoria

Cómo encontrar y reparar pérdidas de memoria en Windows 10

Cómo encontrar y reparar pérdidas de memoria en Windows 10

A Pérdida de memoria es una mala ubicación de los 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 inédita. Una pérdida de memoria no debe confundirse con una pérdida de espacio, que se refiere a un programa que usa 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 que se debe depurar, por ejemplo, en Java, JavaScript, C / C ++, Windows, etc. No es necesario reemplazar físicamente la RAM o el disco duro.

Porque es malo

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

  1. Dado que la memoria no se libera incluso cuando no está en uso, resulta en el agotamiento de 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 pérdida 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: Localización de una fuga causada por una aplicación o un controlador en modo de usuario.

Asignación de memoria

Hay 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 de tiempo de ejecución de C / C ++ son malloc y new.
  2. Función VirtualAlloc para asignación directa desde el sistema operativo.
  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.

Previniendo 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.

Hábitos de seguimiento

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 agregue las columnas como Handles, User Objects, GDI Objects, 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. El Verificador de aplicaciones diagnostica las fugas de montón.
  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 del montón.
  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 RESOLVERsy otros punteros inteligentes para recursos 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. Supervisar la .NET código para uso anormal de memoria.
  5. Evite múltiples rutas de salida para las funciones para permitir 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 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 las 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] Cerrar procesos y reiniciar.

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. Prueba si deshabilitar eso solo funciona.

2] Herramientas de diagnóstico de memoria

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. Reiniciar 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 comenzar la prueba.

Estas siguen siendo soluciones temporales.

3] Buscar actualizaciones de controladores

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

  1. prensa Win + R y abre el Correr ventana. Tipo devmgmt.msc y presione Enter. 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 simple.

4] Optimizar el rendimiento

El ajuste de 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'Actuación', seguido por 'Ajustes'.
  3. Cheque '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] Deshabilitar los programas que se ejecutan al iniciar

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 lo siguiente:

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

6] Desfragmentar disco duro

Aunque Windows 10 lo hace automáticamente, es posible que deba desfragmentar los discos duros de vez en cuando 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 'Herramientas' 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 te preocupes. A continuación, se explica cómo borrar el archivo de página cada vez que se apaga:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager Gestión de memoria

Esto debería hacerlo. Recuerde que su proceso de cierre llevará un poco más de tiempo.

9] Desactivar Superfetch

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

  1. Buscar servicios.msc y vaya al Gerente 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 Windows Defender interno de Windows 10 para escanear y eliminar el malware. Asegúrese de que el antivirus esté actualizado para admitir su sistema operativo para 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.

Cómo cambiar el tamaño, el color y el esquema del puntero del mouse y del cursor en Windows 10
El puntero y el cursor del mouse en Windows 10 son aspectos muy importantes del sistema operativo. Esto también se puede decir de otros sistemas opera...
Motores de juegos gratuitos y de código abierto para desarrollar juegos de Linux
Este artículo cubrirá una lista de motores de juegos de código abierto y gratuitos que se pueden usar para desarrollar juegos 2D y 3D en Linux. Existe...
Tutorial de Shadow of the Tomb Raider para Linux
Shadow of the Tomb Raider es la duodécima incorporación a la serie Tomb Raider, una franquicia de juegos de acción y aventuras creada por Eidos Montre...