Fuite de mémoire
Une fuite de mémoire est un type d’erreur de programmation qui amène un programme à consommer lentement la mémoire du système jusqu’à ce qu’il n’en reste plus. Une fuite de mémoire se produit progressivement, ce qui entraîne une dégradation graduelle des performances de l’ordinateur jusqu’à ce que le programme se bloque ou que tout le système d’exploitation se fige. Quitter le programme responsable de la fuite libère la mémoire du système et résout le problème jusqu’à la prochaine exécution du programme.
Les fuites de mémoire se produisent lorsqu’un programme ne libère pas la mémoire après ne plus en avoir besoin. Lorsqu’un programme exécute un processus, il demande au système une certaine quantité de mémoire pour exécuter ce processus. Une fois le processus terminé, le programme doit restituer cette mémoire au système afin que d’autres programmes puissent l’utiliser. Si le programme ne contient pas les fonctions correctes pour libérer la mémoire (ou si ces fonctions ne sont pas utilisées correctement), il conserve cette mémoire indéfiniment. Lorsque le programme exécute à nouveau ce processus plus tard, il demande davantage de mémoire au système au lieu d’utiliser la mémoire qu’il avait déjà allouée, ce qui augmente la quantité de RAM qu’il utilise jusqu’à ce que le système n’en ait plus pour les autres fonctions.
Un programme qui souffre d’une fuite de mémoire continue de perdre de la mémoire chaque fois qu’il est exécuté, jusqu’à ce que l’erreur soit corrigée. Heureusement, les kits de développement logiciel incluent souvent des débogueurs capables de vérifier le code source d’un programme pour y détecter des fuites de mémoire. Une fois que le développeur du programme a trouvé l’erreur, il peut mettre à jour le programme et publier un correctif.
NOTE: Certains langages de programmation, comme Java et Python, utilisent une technique de gestion de la mémoire appelée « ramasse-miettes » qui récupère automatiquement la mémoire et peut résoudre de nombreuses erreurs de fuite de mémoire (mais pas toutes).
Testez vos connaissances