Comment vérifier si le GarbageCollector fonctionne [Résolu]

Signaler
Messages postés
20
Date d'inscription
vendredi 23 novembre 2007
Statut
Membre
Dernière intervention
7 avril 2009
-
Messages postés
20
Date d'inscription
vendredi 23 novembre 2007
Statut
Membre
Dernière intervention
7 avril 2009
-
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

Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
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

++
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
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
Messages postés
20
Date d'inscription
vendredi 23 novembre 2007
Statut
Membre
Dernière intervention
7 avril 2009

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