Je suis apeuré par la consommation de mémoire de mon prog

ben2249 Messages postés 11 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 2 février 2009 - 2 avril 2007 à 09:17
ben2249 Messages postés 11 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 2 février 2009 - 10 avril 2007 à 11:20
Tout d'abord bien le bonjour à vous tous, ceci est mon premier post..

Je vous éxplique mon inquiétude..

J'ai fais une petite appli qui, toutes les heures, charge un document XML situé sur un site internet. Elle le recopie en local et télécharge des images dont les URLs sont stockées dans le XML. 

Elle compare les dates du XML avec celle stockée en mémoire.

Si la date est plus récente, elle fait apparaitre un form ( à la MSN messenger ) pour avertir l'utilisateur que des nouvelles photos sont disponibles.

L'utilisateur a la possibilité d'ouvrir un autre form, dans lequel il peut voir les images et les infos parsées.

Voila, vraiment rien de compliqué en somme. Cependant, je suis effrayé par la consommation de mon application !! Au démarrage elle prend 23 000 de ram. Quand j'ouvre le form qui parse le XML, ça monte jusqu'à 28 000 kan je traffique les boutons... Et ça ne semble jamais redescendre.............

Est ce normal ??

13 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
2 avril 2007 à 09:28
Bienvenue dans le monde des langages managés ^^
En fait c'est le framework qui tourne derrière qui consomme pas mal... c'est à dire que si tu démarres une autre application qui utilise le framework, elle consommera très peu étant donné que le framework tourne déjà (pour ta première application).
Un simple hello world consomme 20Mo 

<hr />
-Blog-
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
2 avril 2007 à 09:32
Ouaip.
Mais ca peut sembler beaucoup quand meme.
Est-ce que tu libères bien toutes les ressources allouées (Images, fichier xml en mémoire, ton WebClient qui télécharge ton xml (?), etc.)

Quand tu minimises ton appli, la consommation descend ?
Et si tu forces un GC.Collect() ?

Mx
MVP C# 
0
ben2249 Messages postés 11 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 2 février 2009
2 avril 2007 à 09:48
Merci  pour vos réponses si rapides !!

Bidou : Oui j'avais vu que le framework me faisait consommer sur mes premieres applications. Mais même si elles étaient plus simple elle en dépassaient pas le 10 000 de ram.. Me semble t il..

Morpion : Oui je libère bien toutes les ressources. A l'exeption des images, enfin du picture box ..

- Le web client pour les téléchargement est Disposed après chaque dwld
- Le dataset qui lit le XML distant et écrit le local est bien Disposed
- J'utilise des ShowDialog et non des Show...

Mon main form est toujours hidden. Donc pas minimisé. Tout se passe dans le systray.
Les forms qui s'ouvrent ensuite ne peuvent que se refermer. Mais la ressource ne baisse pas pour autant à la fermeture.

Je n'ai pas testé le GC.Collect..

Encore merci de vos aides
0
ben2249 Messages postés 11 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 2 février 2009
2 avril 2007 à 10:26
Je viens de tester de mettre des GC.collect de partout ( à la fermeture des forms ou à la fin du traitement des xml.. ) aucune différence me semble t il.........
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
2 avril 2007 à 10:30
Si je créer un nouveau projet WinForm, que je n'ajoute aucun code, j'arrive à 18Mo.
Alors si ton application tourne avec 23Mo, ça me paraît pas tant démesuré que ça...

Surtout qu'un DataSet, c'est pas ce qu'il y a de plus léger comme object ^^
(Un datatable te suffirait peut-être? Mais je ne pense pas que ça fasse de gros changement...)

<hr />
-Blog-
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
2 avril 2007 à 10:40
Bidou, petite question, t'es sous xp ou vista ?

Mx
MVP C# 
0
ben2249 Messages postés 11 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 2 février 2009
2 avril 2007 à 10:44
Ce qui me surprend c'est que ça monte aux environs de 30 000 une fois tous les forms ouverts et fermés, et que ça ne  semble pas redescendre.....

De plus j'ai un autre programme en Csharp qui tourne constamment. Il ne consomme quasi rien.. J'aurais plutôt pensé que ce dernier utliserait beaucoup de ressources et que le nouveau lui en emprunterait... Je suis vraiment un newbie du GC
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
2 avril 2007 à 11:08
Mx> Sous XP. Pour Vista, je ne sais pas comment ça se passe étant donné qu'il (le framework) est nativement implémenter dans l'OS....

<hr />
-Blog-
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
2 avril 2007 à 12:46
Ouai, c'est ce que je pensais.
Sous vista, une simple appli avec une form monte a 3Mo environ.
Sinon j'ai une appli console qui tourne en boucle depuis 2 heures la, qui me fait pas mal de calculs et les insere en bdd, 1600 Ko.

C'est deja plus raisonnable comme ca

Mx
MVP C# 
0
ben2249 Messages postés 11 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 2 février 2009
7 avril 2007 à 11:36
J'ai beau faire, je ne parviens pas à réduite la consommation de mémoire....... J'ai peur qu'un tout petit logiciel utilisant 30 megs de ram n'interresse personne..
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
8 avril 2007 à 20:19
Salut,

Un peu de lecture sur le sujet : http://www.itwriting.com/dotnetmem.php

/*
coq
MVP Visual C#
CoqBlog
*/
0
ricklekebekoi Messages postés 303 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 24 avril 2009 5
9 avril 2007 à 17:36
"Mon main form est toujours hidden. Donc pas minimisé. Tout se passe dans le systray."



Essai de le minimiser en pluss de le hidder dans ton code quand tu envoi ton appli dans le systray, et vice versa ?

Eric
0
ben2249 Messages postés 11 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 2 février 2009
10 avril 2007 à 11:20
J'avais répondu trop vite... J'utilise une fonction trouvée sur ce site dans un tutorial pour le systray "HideApp" qui minimize en plus de hidder...
0
Rejoignez-nous