Idéalement, un gestionnaire de mémoire automatique libérerait des objets qui ne seront pas de toute utilisation ultérieure de l'application.
Il a été prouvé qu'il n'est pas possible de déterminer, avec une précision de 100% et dans toutes les situations, si un objet donné sera utilisé par la suite.À la place, les garbage collectors utilisent la «meilleure chose suivante»: ils libèrent des objets qui ne sont pas accessible: un objet auquel on ne peut accéder à partir de l'application, faute d'un chemin de références à cet objet, ne sera jamais utilisé à nouveau par l'application car il n'y a aucun moyen pour l'application de remarquer même que l'objet existe toujours. C'est une approximation mais c'est sûr: le GC ne libèrera pas un objet qui est encore utilisé, mais il pourrait ne pas libérer un objet qui ne sera plus utilisé, si cet objet semble être joignable (ie l'application peut encore atteindre et saisir l'objet, si elle le souhaite). Une "fuite de mémoire" est une situation dans laquelle les objets inutilisés utilisent une quantité excessive de mémoire vive (RAM). Ce qui est "démesuré" dépend de l'application. Un seul objet inutilisé est rarement un problème. Les fuites importantes habituelles sont des situations où des objets inutilisés mais atteignables s'accumulent par milliers.
Travail à domicile? (15chrlmt) – LiraNuna