Comment vérifier si le GarbageCollector fonctionne

Résolu
amoniaque Messages postés 20 Date d'inscription vendredi 23 novembre 2007 Statut Membre Dernière intervention 7 avril 2009 - 6 avril 2009 à 18:27
amoniaque Messages postés 20 Date d'inscription vendredi 23 novembre 2007 Statut Membre Dernière intervention 7 avril 2009 - 7 avril 2009 à 09:37
Bonjour,

Je suis sur une application dans laquelle je créé et utilise des tâches.
Lors de leur création, la mémoire vive utilisée augmente de 12Mo.

Une fois que celles-ci ne sont plus utiles j'utilise "dispose" pour
libérer la mémoire mais ça ne se voit pas sur le gestionnaire des
tâches( la mémoire vive reste au même niveau).

Est ce que cela peut venir du GarbageCollector ou alors c'est moi qui fais mal les choses ?!

Cordialement,

Julien

3 réponses

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
6 avril 2009 à 19:10
Bonjour,
Non non le GC fonctionne et tu fais bien les choses.
Pour rappel le Garbage Collector est un système utilisé par le CLR pour gérer les ressources allouées. Donc celui-ci libère les ressources de tes objets lorsqu'ils ne sont plus utilisés par ton appli mais il n'est pas possible à ma connaissance de déterminer quand le CLR appelera le GC pour faire le ménage (algo non déterministe).
Pour aller plus loin:
http://msdn.microsoft.com/fr-fr/library/0xy59wtx.aspx
http://msdn.microsoft.com/fr-fr/library/hks5e2k6(VS.80).aspx

++
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
6 avril 2009 à 19:25
Le GC libère les ressources qui ne sont plus utiliser, mais pas immédiatement. Lui seul decide de quand il le fait. Cela peut prendre parfois plusieurs minutes. C'est en fonction des besoins de tout le système et du temps qu'il lui est laissé pour le faire. Sachant que, dans la mesure du possible, c'est le fonctionnement de l'appli qui est privilégié, liberer des ressources peut prendre beaucoup de ressources.

Il est possible de faire libérer les ressources en attente en appelalnt la methode Collect du GC, je crois, mais c'est déconseiller de le faire. Laisse le GC faire son boulot tout seul comme un grand.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
3
amoniaque Messages postés 20 Date d'inscription vendredi 23 novembre 2007 Statut Membre Dernière intervention 7 avril 2009
7 avril 2009 à 09:37
Bonjour,

Merci pour vos réponses.

J'ai de nouveau une question du même genre mais je fais une nouvelle question "Pourquoi le Close d'une frm ne libère pas la mémoire vive?".

Cordialement,

Julien
0
Rejoignez-nous