IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

Application qui prend beaucoup de mémoire


Sujet :

Dotnet

  1. #1
    Membre habitué Avatar de Khrysby
    Homme Profil pro
    Chef de projet
    Inscrit en
    Avril 2005
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Avril 2005
    Messages : 239
    Points : 144
    Points
    144
    Par défaut Application qui prend beaucoup de mémoire
    Bonjour,

    Je développe une application toute bête qui se met en tache de fond mais il y a quand même un notifyIcon... Et pour le peu qu'elle fait, elle prend 17Mo au lancement et augment petit à petit... Je l'ai lancé cette après-midi, et elle fait maintenant 32Mo... C'est énorme je trouve...

    Je l'ai développer en C#... Avez-vous déjà rencontrer ce problème...

    C'est peut-être une mauvaise gestion de la mémoire mais je ne vois vraiment pas qu'est-ce qui pourrait prendre de la mémoire dans mon application...

    Merci d'avance.
    Mickaël

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    C'est normal: le FX alloue une quantité de mémoire pour ton application et en redemande au système lorsqu'il en a besoin.

  3. #3
    Membre habitué Avatar de Khrysby
    Homme Profil pro
    Chef de projet
    Inscrit en
    Avril 2005
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Avril 2005
    Messages : 239
    Points : 144
    Points
    144
    Par défaut
    Ok. Et il y a moyen de vider la mémoire... Si je m'en souvient bien, le garbedge colectore et géré tout par .NET non ?
    Mickaël

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 547
    Points : 627
    Points
    627
    Par défaut
    Salut,

    tu n'as pas reellement de moyens pour recuperer la memoire d'un process, ca tient du fonctionnement meme du framework, ou tu ne geres pas l'alloc/desalloc de memoire. A tout hasard, essaie de fouiller dans la class GC, tu trouveras la methode Collect(), mais normalement tu ne devrais jamais avoir à l'utiliser.

    Et puis bon, faut relativiser, une application .Net c'est pas vraiment memory-friendly. A tout hasard, regardes l'evolution de ta consommation avec Process Explorer (by sysinternals), voire meme avec CLR Profiler, pour voir si tu n'as pas une fuite quelque part (collection qui grossit en permanence etc ...).

  5. #5
    Membre habitué Avatar de Khrysby
    Homme Profil pro
    Chef de projet
    Inscrit en
    Avril 2005
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Avril 2005
    Messages : 239
    Points : 144
    Points
    144
    Par défaut
    Ok... Merci, je vais regarder tout ça... Je tiens au courant
    Mickaël

  6. #6
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    Il ne faut pas utiliser GC.collect c'est pas bien !!!

    Si ton applis consomme de la mémoire et que le nombre d'objets alloués ne change pas regardes si tu libères bien tes ressources non managés :
    -Connexion à une bd.
    -Accés fichier.
    -Utilisation de GDI+ ou autres ressources graphiques.
    -Interop COM

    Aprés il faut savoir que le fx peut demander plus de mémoire qu'il n'en utilise vraiment, en fait il demande 20Mo alors qu'il en utilise que 10 parce que quand il en demande il voit que l'os en dispose de 600Mo et qu'il préfère faire une demande que plusieurs (questions de perfs) il rerendra la mémoire si nécéssaire...(c'est imagé hein ) bref pas de quoi s'affoller le plus important c'est de bien libérer les ressources non managés et de laisser le framework s'occuper du reste. Un GC.Collect() va engendrer une forte utilisation du CPU qui ne sera pas forcément nécéssaire...

    http://faqcsharp.developpez.com/?page=syst#syst_gc

  7. #7
    Membre habitué Avatar de Khrysby
    Homme Profil pro
    Chef de projet
    Inscrit en
    Avril 2005
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Avril 2005
    Messages : 239
    Points : 144
    Points
    144
    Par défaut
    D'accord, merci pour la réponse... Je vais voir se que je peux faire...
    Je pense que jen'utiliserai pas GC.Collect...

    Merci !
    Mickaël

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2008R2] script qui prend beaucoup de temps
    Par my_diva dans le forum Développement
    Réponses: 7
    Dernier message: 20/01/2014, 18h48
  2. Extraction qui prend beaucoup de temps
    Par khadija30 dans le forum SSIS
    Réponses: 14
    Dernier message: 14/05/2013, 18h12
  3. Réponses: 7
    Dernier message: 10/03/2009, 20h02
  4. Serveur qui prend trop de mémoire
    Par malag dans le forum Langage
    Réponses: 4
    Dernier message: 02/04/2007, 23h05
  5. Problème de Thread qui prend trop de mémoire
    Par petozak dans le forum Général Java
    Réponses: 20
    Dernier message: 11/12/2006, 16h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo