Skip to main content

Qu'est-ce qu'une référence faible?

Une référence faible est une référence à un objet en mémoire qui n'empêche pas un objet d'être nettoyé par des routines de collecte des ordures en raison de son association avec l'objet.Ce type de référence est couramment utilisé pour aider à éliminer les fuites de mémoire lorsque des conditions spéciales existent qui empêchent la collecte normale des ordures de se produire.Les algorithmes de programmation qui utilisent une référence circulaire ou contiennent des informations étrangères dans un cache ou une structure spéciale avantage en utilisant des références faibles.L'utilisation de références faibles dans ces types de situations permet le nettoyage des objets de référents inutilisés et leurs références faibles associées.

Dans la programmation informatique, une forte référence est généralement créée par défaut lorsqu'un objet est créé, et la mémoire occupée parL'objet reste alloué tant que la forte référence reste viable.Une forte référence devient annulée et sa mémoire d'objets associée est libérée peu de temps après une forte référence et son objet est signalé comme n'étant plus utilisé par un programme.Dans certaines situations, telles que la programmation de socket ou les applications de manipulation d'images, les classes utilisées pour créer des objets de travail n'ont pas la capacité intégrée pour stocker des informations supplémentaires qui sont nécessaires par une application spécifique.Les détails supplémentaires pour les objets transitoires tels que les connexions ou les images doivent être stockés dans des objets de cache supplémentaires et liés aux objets transitoires par références.Lorsqu'une référence faible est utilisée au lieu d'une forte référence, les informations supplémentaires ne sont pas liées par la référence et peuvent être supprimées du cache par le collecteur de déchets une fois que l'objet référent a été marqué comme non viable.

Les classes de référence faibles sont normalementDisponible dans des langues augmentées par des sous-systèmes de collecte des ordures, notamment Java, Python, Perl, C # et le .NET Framework.En C ++, cependant, les programmeurs sont généralement responsables de garantir le nettoyage de la mémoire.Cette langue a implémenté une classe de pointeur intelligente qui fournit certaines des mêmes fonctionnalités que les références faibles et la collecte des ordures fournissent, contribuant à réduire les fuites de mémoire causées par un nettoyage de pointeur incorrect.

Pour faciliter davantage la gestion de la mémoire, les langues avec des installations de collecte de déchets peuvent également en outre.Améliorez la fonctionnalité d'une langue en fournissant des gradients plus fins de références autres que la référence forte ou faible.Les types de données tels que les références Soft et les références fantômes peuvent être incluses dans ces langues, ce qui permet de différents niveaux de recapture d'objet ou de notification de trafic.Les programmeurs qui utilisent des langages avec collection de déchets automatisés doivent se familiariser avec toutes les classes de référence disponibles afin d'améliorer les performances de l'application.