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

Langage Delphi Discussion :

Mémoire insuffisante


Sujet :

Langage Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 59
    Points : 37
    Points
    37
    Par défaut Mémoire insuffisante
    Quand on fait des [free] après chaque [create], quand on ferme les tables quand on a fini de les utiliser, qu'est ce qui fait qu'une application consomme de plus en plus de mémoire pendant son exécution?

    Je développe une application et sa taille atteint les 300 Mo en mémoire alors qu'elle commence à 65 Mo.. comme je l'ai dit, je fais des [free] quand il faut et je ferme mes tables.. Parcontre, je débogue beaucoup et je fais pas mal de [Ctrl+F2] pour réinitialiser mon programme quand je trouve la solution à un problème.

  2. #2
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 170
    Points
    4 170
    Par défaut
    Tu as certainement oublié un free quelque part.

    Chaque fois que tu lances ton appli, c'est un nouveau process windows qui est créé. Donc si par hasard la mémoire utilisée par l'exécution précédente n'était pas libérée, ce serait la mémoire dispo sous windows qui diminuerait, pas la mémoire utilisée par ton appli.
    Le CTRL+F2 peut perturber Delphi et son débogueur. Ca peut perturber ton appli si tu fais appel à des ressources persistante (genre définition de verrou dans des fichiers). Ca perturbe le BDE (Un CTRL+F2 et tu peux relancer Delphi).
    En revanche, si au cours de son utilisation la mémoire occupée par ton appli augmente, c'est soit que tu as un memory leak, soit tu as réellement besoin de beaucoup de mémoire (ou que la mémoire est bien libérée, mais très tardivement).

    Tu peux utiliser FastMM4 pour localiser les memoryleak. Si tu utilises BDS2006 ou suivant, tu peux positionner la variable globale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ReportMemoryLeaksOnShutdown := true
    Ca te permettra de savoir à la sortie de ton appli, s'il existait encore des blocs mémoires non libérés.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 59
    Points : 37
    Points
    37
    Par défaut
    En fait, je crois que j'ai fait une erreur dans ma question. Ce n'est pas mon application qui est touchée par cette augmentation de l'utilisation de la mémoire, c'est le delphi lui même!! pourtant je travaille toujours (dans le delphi) sur le même programme et pourtant au bout d'un moment, delphi plante!! et quand je vérifie combien il consomme de memoire, je vois 500 Mo à peu près! j'utilise le delphi 2006...

  4. #4
    Membre confirmé
    Avatar de alheuredudejeuner
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 376
    Points : 632
    Points
    632
    Billets dans le blog
    4
    Par défaut cela viens surement de tes tables
    si tu charges les tables en visuelles pour créer tes fiches elles prennent alors autant de place quelle contiennent de données.

    André

  5. #5
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 170
    Points
    4 170
    Par défaut
    Citation Envoyé par badilou Voir le message
    En fait, je crois que j'ai fait une erreur dans ma question. Ce n'est pas mon application qui est touchée par cette augmentation de l'utilisation de la mémoire, c'est le delphi lui même!! pourtant je travaille toujours (dans le delphi) sur le même programme et pourtant au bout d'un moment, delphi plante!! et quand je vérifie combien il consomme de memoire, je vois 500 Mo à peu près! j'utilise le delphi 2006...
    Et ton appli fait quelle taille ? J'en ai une de 1,500,000 lignes de code et ce que tu décris est le fonctionnement normal que j'ai toujours vu avec Delphi.
    C'est pour ça que lorsque j'installe un Delphi, je commence toujours par désactiver l'audit de code (le truc qui te souligne tout et n'importe quoi en rouge, y compris les sources de la VCL) ainsi que tout ce qui n'est pas indispensable...

  6. #6
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonjour,

    [...] Quand on fait des [free] après chaque [create] [...]

    Si tu parles de fiches ; une fiche ça se libère avec un Release et non un Free :
    http://www.developpez.net/forums/sho...b%E8re+release

    Mais je ne sais pas si j'ai bien saisi ta question.

Discussions similaires

  1. [CR][VB.NET] Message : mémoire insuffisante
    Par arno2000 dans le forum SDK
    Réponses: 1
    Dernier message: 22/12/2005, 13h52
  2. Mémoire insuffisante
    Par cjo dans le forum Bases de données
    Réponses: 6
    Dernier message: 07/11/2005, 12h14
  3. message d'erreur "Mémoire insuffisante"
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 25/10/2005, 14h41
  4. Mémoire insuffisante
    Par lenouvo dans le forum MFC
    Réponses: 6
    Dernier message: 31/08/2005, 09h14
  5. Mémoire insuffisante sous Dos
    Par Bubonik software dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 20/09/2003, 10h35

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