.NET 3.5, j'ai des classes qui stockent jusqu'à 1 Mo de chaînes. Même si j'ai besoin de l'objet depuis très longtemps, je n'ai pas besoin de stocker la chaîne pendant longtemps.Effacement de grands champs de la mémoire dans des objets de longue durée
Comment puis-je vraiment supprimer la chaîne de la mémoire sans disposer de l'objet parent.
Est-ce une bonne pratique d'utiliser "myString = null
" dans ce cas? ou doit envelopper dans une classe privée déposable ou quelque chose?
Je l'ai réellement implémenté, mais je n'ai pas aimé le changer en cache personnalisé. Le problème pour être honnête je ne suis pas tout à fait sûr où la fuite de mémoire est, peut-être mes chaînes sont hors de la mémoire très bien. Impossible de trouver un profileur de mémoire approprié capable de profiler une application complexe. –
Voir: http://msdn.microsoft.com/fr-fr/library/ms404247.aspx. Comme le dit l'article, «évitez d'utiliser des références faibles comme solution automatique aux problèmes de gestion de la mémoire, mais développez une stratégie de mise en cache efficace pour gérer les objets de votre application». – MusiGenesis
@MusiGenesis c'est pourquoi j'ai changé le design :) –