Quando um programa de computador precisa para armazenar informações , ele primeiro precisa alocar memória . Depois que os dados não é mais necessário , o programa desaloca a memória para que outro programa pode fazer uso dele. Se um programa aloca memória sem desalocá a memória depois, que o programa vai se tornar um dreno de recursos do sistema. Estes erros são chamados de " vazamentos de memória " e livrar-se deles é uma parte importante de depuração. Processo
Independentemente de qual língua o programa é escrito, o processo básico para encontrar vazamentos de memória é o mesmo. Em primeiro lugar , a perda de memória necessita de ser detectado . Um vazamento de memória é normalmente indicado por linearmente crescente uso de memória , apesar de algumas ferramentas especializadas posso dizer-lhe diretamente a quantidade de memória de um programa alocou ou liberada. Uma vez que um vazamento de memória é detectado, ele deve ser isolado . Isto é feito testando cada função ou objeto separadamente para determinar onde o vazamento está a ocorrer . Em seguida, o programador deve descobrir o erro específico que está causando o vazamento e corrigi-lo.
C /C + +
Programas escritos em C e C + + são notórias por ter memória vazamentos , pois o usuário deve alocar manualmente e desalocar memória usando o comando malloc . A ferramenta ccmalloc monitora a função malloc e relatórios que a memória não foi desalocados , foi desalocado várias vezes ou até mesmo sem ter sido alocados deallocated em primeiro lugar . Outros programas mais especializados, como NJAMD ("Not Just Another Malloc Debugger " ) também existem para encontrar vazamentos de memória em C e C + +.
MSDN
Desenvolvedores usando o ambiente de desenvolvimento da Microsoft pode usar o comando ml para encontrar vazamentos de memória. Digitando ml no prompt cesh trará uma lista de cada aplicativo em execução ea quantidade de memória que está sendo usado, escrito como "r /w = " seguido do número de páginas que a aplicação tem alocado. Aumentos inesperados no uso de memória indicam que o aplicativo tem um vazamento de memória.
Java
Muitos programadores pensam que os programas Java são imunes a falhas de memória , porque o programador não é responsável para alocação e desalocação de memória , mas eles ainda surgir. Máquina virtual Java , o ambiente que implementa programas em Java , tem um coletor de lixo automático que desaloca memória quando ele já não é referenciado por outras classes. Vazamentos de memória podem ocorrer quando a memória está sendo referenciado quando ele não for mais necessário , fazendo-a ser pulado pelo coletor de lixo . JProbe é um depurador que pode tirar instantâneos de uso de memória como um aplicativo Java é executado , ajudando os programadores a encontrar a fonte de um vazamento de memória.