-
Problème de mémoire
Bonjour,
je parcours un répertoire de 30000 fichiers et je sérialise ça après avoir traité les informations grâce à une nameVallueCollection. Cela marche bien mais lorsque je matte le task manager, j'ai toujours une énorme quantité de mémoire occupé alors que je fais bien maNameVallueCollection.Clear(). Faut-il donc que je sois forcé d'utiliser GC.Collect() sachant que dans la FAQ du site il n'est pas conseillé de l'utiliser?
Cordialement.
-
ben je pense que vu le nombre de fichier c'est normal que cela te prenne de la place en memoire. Maintenant si cela fonctionne comme en java et so je dit pas de betise, lorsque tu libere tes objets tu ne recupere pas de suite l'espace memoire, il faut attendre que le GC fasse sont travail. Par contre je ne peux pas te deire tout les combien de temps il se declenche.
-
Donc après avoir cherché, le GC opère seulement quand je ferme l'application donc si je fais par exemple 4 fois le même traitement ben le PC :aie: .
Il y a-t-il une soluce à part le GC.Collect() pour forcer la libération de la mémoire?
-
si tu veux faire plusieur traitement tu peux aussi remplacer le valeurs existante pour ne pas prendre plus de mémoire.
-
Le GC se déclenche aussi quand la mémoire en a besoin.
C'est à dire que si tu as bien fait les choses, tu ne devrais pas avoir de problème de mémoire, vu que tu n'auras pas 4 * ta collection, mais qu'une seule à la fois.