Un certain nombre de moyens sont disponibles pour déterminer si un programme d'ordinateur est une fuite de mémoire . Un programmeur peut passer au crible le code source pour s'assurer que toutes attribuées mémoire a pas été libéré , il peut écrire un programme qui teste son logiciel pour les fuites de mémoire , il ne peut concevoir un système de gestion de mémoire qui lui permet de garder une trace de mémoire utilisée ou qu'il peut utiliser un programme tiers qui teste les fuites de mémoire. Qu'est-ce qu'une fuite de mémoire ? Une fuite de mémoire est une utilisation de la mémoire non désirée par un programme informatique , où le programme alloue de la mémoire pour l'utilisation et ne parvient pas à libérer une fois que la mémoire n'est plus en usage. Ce morceau de mémoire ne sera plus disponible pour le programme informatique. Un programme qui fuit assez de mémoire sur le temps , le système risque de manquer de mémoire disponible, ce qui peut provoquer le programme ou le système informatique à l'échec. Des fuites de mémoire peuvent également provoquer un système de ralentir à une vitesse satisfaisante , en raison de volée de mémoire . Les programmes qui s'exécutent pendant de longues périodes de temps, remplissent de nombreuses allocations ou allouer de la mémoire en gros morceaux peut être particulièrement sujettes à des fuites de mémoire dangereuses. Utiliser les bonnes pratiques de codage meilleure façon de s'assurer que votre programme n'est pas une fuite de mémoire est d'écrire du bon code qui gère convenablement les ressources du système. Assurez-vous que pour chaque appel de fonction qui alloue de la mémoire , il ya un appel correspondant qui libère la mémoire. Certains langages comme Java , C #, VB.NET et , fournissent la collecte des ordures , où le système vérifie régulièrement que la mémoire allouée est encore en usage . Bien que ces systèmes ne préviennent pas complètement les fuites de mémoire , il est moins probable qu'ils se produisent . D'autres langues, comme le C + + , permettre l'attribution de la pile, où une partie de la mémoire est libérée automatiquement une fois que la variable qui y fait référence est hors de portée . En utilisant la langue appropriée pour la tâche et le maintien de bonnes pratiques d'écriture de logiciels , de nombreuses fuites de mémoire peuvent être complètement évités. Créer un gestionnaire mémoire Certaines ordinateur programmes exigent tellement code à exécuter que la lecture à travers le programme pour trouver où la mémoire a fui n'est tout simplement pas faisable . Dans ces cas, il peut être judicieux d'écrire un composant gestionnaire de mémoire pour le programme. Le logiciel aurait alors une interface uniforme pour l'attribution des blocs de mémoire , et le gestionnaire garde la trace de où et comment ces morceaux sont attribués . Dans sa forme la plus simple , le gérant fournit simplement les informations , ce qui permet au programmeur de voir combien de mémoire est utilisée et quels composants sont l'utiliser. Il peut également fournir la collecte des ordures et le contrôle comment la mémoire est allouée et libérée , ce qui donne un programmeur seul endroit pour chercher des fuites de mémoire, au lieu de tout le code pour l'ensemble du programme . Créer un programme de test on peut souvent voir la mémoire utilisée par un programme avec un outil du système, comme le gestionnaire de tâches Windows ou "top" sur Unix /Linux pour déterminer si la mémoire est l'objet de fuites . Ce n'est pas toujours preuve d'une fuite de mémoire , mais peut fournir une rétroaction initiale. Parfois, il est possible d'écrire un programme simple qui teste les différentes composantes d'un morceau de logiciel pour déterminer si la mémoire n'est pas étanche. Le programme de test peut déterminer dynamiquement ou être donné connaissance préalable de la quantité de mémoire un programme d'ordinateur doit utiliser. Il s'assure ensuite que la quantité utilisée est le montant qui doit être utilisé . Si une fuite de mémoire se produit , le programme de test fournit des informations sur la façon dont cela s'est passé , ce qui permet au programmeur de réparer la fuite . Logiciels tiers programmeurs peuvent utiliser de nombreuses troisième - parti programmes et bibliothèques de tester si leur logiciel est une fuite de mémoire . Dans le Microsoft . NET Framework , on peut permettre un test de fuite de mémoire en utilisant les versions Debug des fonctions d'allocation de mémoire . Sur Linux , Unix et Mac, vous pouvez utiliser des outils tels que Valgrind , dmalloc et Insure + + pour isoler une fuite de mémoire . Beaucoup de débogueurs de mémoire sont également disponibles pour Windows. Le meilleur outil pour le travail dépend de l'environnement de développement et de la langue utilisée , ainsi que les caractéristiques spécifiques du programme à déboguer, comme la taille, les exigences de vitesse et ils manière dont il interagit avec le système . Il existe de nombreux outils qui permet de choisir , et ils peuvent être une aubaine pour le programmeur frustré fatigué de chercher la dernière fuite insaisissable.
|