Cuando un programa de ordenador necesita para almacenar la información, primero debe asignar memoria . Después ya no es necesario que los datos , el programa cancela la asignación de la memoria de modo que otro programa puede hacer uso de ella . Si un programa asigna memoria sin borrar la memoria después, que el programa se convertirá en una pérdida de recursos del sistema . Estos errores se denominan " pérdidas de memoria " y deshacerse de ellos es una parte importante de depuración. Proceso
Sin importar qué idioma está escrito el programa en el proceso básico para encontrar fugas de memoria es el mismo. En primer lugar, la pérdida de memoria tiene que ser detectado . Una pérdida de memoria es generalmente indicada por linealmente creciente uso de la memoria , a pesar de algunas herramientas especializadas pueden decir directamente la cantidad de memoria que un programa haya asignado o desasignado . Una vez que se detecta una pérdida de memoria , debe aislarse . Esto se hace mediante ensayo de cada función o un objeto por separado para determinar donde se está produciendo la fuga . A continuación, el programador debe entender el error específico que está causando la fuga y corregirla.
C /C + +
programas escritos en C y C + + son conocidas por tener memoria fugas debido a que el usuario debe asignar y desasignar memoria usando el comando malloc manualmente . La herramienta ccmalloc supervisa la función malloc y los informes de lo que la memoria no se cancela la asignación , se cancela la asignación varias veces o incluso asignado sin haber sido cancelado la asignación en el primer lugar . También existen otros programas más especializados como NJAMD ( "Not Just Another depurador Malloc ") para encontrar fugas de memoria en C y C + + .
MSDN
Desarrolladores utilizando el entorno de desarrollo de Microsoft se puede utilizar el comando ml de encontrar fugas de memoria . Escribiendo ml en el indicador Cesh se abrirá una lista de cada aplicación que se ejecuta y la cantidad de memoria que se está utilizando , escrito como "r /w = " seguido por el número de páginas que la aplicación ha asignado. Incrementos inesperados en el uso de la memoria indican que la aplicación tiene una pérdida de memoria .
Java
Muchos programadores piensan que los programas Java son inmunes a las pérdidas de memoria debido a que el programador no es responsable para asignar y desasignar la memoria, pero no todavía surgir. Máquina virtual de Java , el medio ambiente que implementa los programas de Java , tiene un recolector de basura automático que cancela la asignación de la memoria cuando ya no se hace referencia a las demás clases. Las pérdidas de memoria pueden ocurrir cuando se está haciendo referencia a la memoria cuando ya no se necesita , haciendo que puede ser saltado por el recolector de basura . JProbe es un depurador que puede tomar instantáneas de uso de la memoria como carreras de aplicaciones Java , lo que ayuda a los programadores a encontrar la fuente de una pérdida de memoria .