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

VB.NET Discussion :

Utilisation de la mémoire en augmentation [Débutant]


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 55
    Points : 37
    Points
    37
    Par défaut Utilisation de la mémoire en augmentation
    Bonjour,

    encore moi !

    je ne met pas de code pour le moment car il y en a un "paquet", c'est plus une question généraliste que je vais vous poser.

    mon programme sert à ouvrir dans une DGV des données issues d'un fichier XML
    Je peux interagir avec ces données via la DGV (clic droit pour supprimer,éditer). Dès que je fais un clic sur la DGV, que je valide ou non une action l'appli prend 300ko de plus en mémoire et ne fait, au final, qu'augmenter.

    Je ne vois pas quoi faire pour éviter cette fuite de mémoire (si cela s'appelle ainsi).

    Auriez-vous des pistes à me conseiller pour que j'essai dans un 1er temps de résoudre par moi même ce soucis ?

    merci d'avance (et comme à mon accoutumé je m'excuse pour ces questions probablement ... stupides)
    pas mal de connaissance en c/c++/mysql
    debute en php

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    à chaque manip' sur ton contrôle le programme fait +300Ko ?
    Ou ça n'augmente qu'une seule fois de 300Ko, peu importe le nombre d'actions ?
    Plus je connais de langages, plus j'aime le C.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 55
    Points : 37
    Points
    37
    Par défaut
    a chaque action ça augmente
    si simple clic gauche quelques ko
    si clic droit entre quelques ko a 300ko si je valide une action (editer => récupération des data de la ligne en question de la dgv dans des textbox et à la validation modification dans la dgv / supprimer => suppression directe de la ligne sélectionnée)

    et encore ça va plus loin, puisque dès que j'ouvre le menu que j'ai créé ça augmente et ça ne se libère pas

    edit : je crois que je ne fais pas les "dispose()" comme il se doit de part et d'autre des fonctions. Reste à comprendre où et comment l'utiliser correctement (par exemple j'ouvre le menu mais je ne fais aucune action -referme le menu en cliquant ailleurs- où mettre dispose() ) j'ai encore du pain sur la planche et bcp de doc a lire et assimiler
    pas mal de connaissance en c/c++/mysql
    debute en php

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    en fait il faut comprendre la gestion de la mémoire en .net
    à savoir il y a un Garbage Collector (GC) qui s'occupe de tout ou presque
    Mais celui ci consomme des performances, aussi il attend qu'on lui dise de bosser, c'est ce que windows fait quand il a besoin de mémoire pour autre chose
    tant qu'il y a beaucoup de mémoire libre, qu'une appli augmente ne le dérange pas
    et 300ko c'est un peu ridicule, il faudrait voir si arrivé à quelques centaines de Mo (ou avant) ca redescend automatiquement

    .dispose est utilisable (et conseillé) sur les classes utilisant des ressources provenant de windows (non codées dans le framework, comme les images, les connexions réseaux ...)
    .dispose permet de libérer ce qui appartient à windows, sans attendre que le GC passe (car il le fera aussi normalement)
    donc quand on créé des system.drawing.bitmap dans une boucle et qu'on en a plus besoin il est obligatoire d'avoir un .dispose (sinon le programme peut planter)
    et selon les cas ca va de fortement conseillé à on s'en fout le GC s'en occupera
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 55
    Points : 37
    Points
    37
    Par défaut
    merci pour ce complément d'info très instructif !

    effectivement la monté en charge est "ridicule" mon programme au chargement de ne pèse que 6Mo.
    Je vais, du coup finir ce qu'il y a finir (quelques petites fonctions, simplification du code dans certaines parties -je suis un peu bourrin je peux faire mieux c'est sûr-) et le mettre en production pour voir comment il réagit dans le temps (rapidité, conso mémoire, bug)

    Si jamais je tombe sur un couac je repasserai vous voir car vous assurez

    En tout cas merci d'avoir pris le temps de m'éclairer !

    à bientôt
    pas mal de connaissance en c/c++/mysql
    debute en php

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/06/2007, 16h58
  2. Réponses: 21
    Dernier message: 21/07/2006, 16h55
  3. Utilisation de la mémoire dynamique
    Par Stany dans le forum Windows
    Réponses: 17
    Dernier message: 27/04/2006, 11h39
  4. Utilisation de la mémoire
    Par jagboys dans le forum MFC
    Réponses: 1
    Dernier message: 12/11/2005, 16h30
  5. Utilisation de la mémoire vive....
    Par Neilos dans le forum Windows
    Réponses: 9
    Dernier message: 24/11/2003, 11h09

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