Bonjour à tous,
Comme je ne maitrise pas totalement le domaine des langages dot net, je souhaitai savoir si le probleme que je rencontre est un fonctionnement normal de VS ou bien s'il y a effectivement fuite memoire. J'explique la situation :
Dans mon appli j'ai une listbox avec plusieurs elements "titres" différents.
A chaque fois que je click sur un des éléments, il va chercher dans une liste de controles utilisateurs (déjà chargés au démarrage de l'appli) celui qui y correspond et l'affiche dans un panel via la commande panel.controls.add(moncontrole) en ayant pris soin auparavant de faire un remove de celui qui etait là avant le nouveau.
A chaque fois que je change d'element, il me charge bien le bon controle utilisateur mais la memoire ne fait qu'augmenter.
J'ai donc fait l'essai avec ceci :
Je sais que j'ai un controle qui bouffe pas mal en memoire et un qui ne bouffe rien. Je charge donc le premier, la memoire grimpe puis je met le deuxieme à la place ce qui aurait du réduire la memoire utilisée logiquement. Eh bien non ! celà ne réduit pas. Et pire, ça continue d'augmenter !
Donc en gros je me demandais si cela était normal ou pas.
J'ai meme fait le test ci dessus en ayant pris soin de placer un bouton avec un GC.collect(); assigné au onclick pour forcer un passage du garbage collector mais ça ne change rien non plus.
Je me demande si le fonctionnement des softs .net n'alloue pas la memoire nécessaire sans la "désallouer" en se disant un truc du genre "bah puisque j'ai eu besoin de tant de memoire, je risque d'en avoir besoin encore apres donc je la garde allouée pour moi"
Quel serait vos avis sur la question ?
Merci d'avance !
@+
ps : ce coté memoire ne se pose pas sur la creation/destruction de mes usercontrols vu qu'ils sont chargés et ne bougent pas du tout. C'est juste au niveau du panel.controls.add/remove que ça pose probleme
Partager