Conséquences sur la programmation

Le danger principal de la programmation avec un système de gestion automatique de la mémoire est de maintenir inutilement des objets.

Prenons par exemple le vecteur avec trou (voir section 23.3.4). Le trou du vecteur contient des objets qui sont sans intérêt pour l'application. Pourtant, le ramasse-miettes ignore l'existence du trou et parcourt par conséquent ces objets aussi. Ces objets peuvent à leur tour en référencer d'autres. De grandes quantités de mémoire peuvent donc être impossible à récupérer. C'est un problème non seulement du point de vue de la mémoire gaspillée, mais aussi un problème de performance, car le ramasse-miettes doit parcourir cette mémoire chaque fois qu'il est invoqué.

Pour éviter ce problème, il est impératif d'annuler une référence à un objet dont on n'a plus besoin. Cette référence peut être sous la forme d'une variable, d'un élément d'une liste ou d'un champ dans une structure. Le plus simple est de mettre nil dans la référence après l'avoir utilisée pour la dernière fois.



Irene DURAND
2011-10-14