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 :

Comment connaître l'occupation mémoire d'une application ?


Sujet :

Langage Delphi

  1. #1
    Membre habitué Avatar de jambonstar
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 161
    Points
    161
    Par défaut Comment connaître l'occupation mémoire d'une application ?
    Bonjour,

    Je cherche comment obtenir la taille en mémoire de mon appli. Parce que tout ce que j'ai trouvé c'est de passer par le TMemoryStatus.
    Sauf que cette commande me permet uniquement de connaitre l'état de la mémoire totale. Mais pas seulement de mon appli.

    Quelqu'un connait un jeu d'instruction pour ca ?


    Merci d'avance

    PLUS FORT ENSEMBLE !Et plus joli aussi
    (\ _ /)
    (='.'=) Voici Lapinou.
    (")-(")
    Aidez le à conquérir le monde en le reproduisant.

    http://ashbasket.free.fr

  2. #2
    bjl
    bjl est déconnecté
    Membre averti Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Points : 338
    Points
    338
    Par défaut
    il y a la fonction 'AllocMemCount' mais il faut la placer un peu partout et mémoriser les points hauts.

    sinon, il y a des applications externes qui font çà. je crois que memproof le fait

  3. #3
    Membre habitué Avatar de jambonstar
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 161
    Points
    161
    Par défaut
    Merci pour ta réponse.

    AllocMemCount, ca semble interessant, mais comment je l'applique ?

    Il n'existe pas une instruction qui donne directement la valeur, celle que l'on peut retrouver dans le Gestionnaire des taches ?

    Pour les applis externe, le probleme c'est que si je veux bien analyser, il faut que je suis en pas à pas, hors mon appli converse avec un controle activeX semi-temps réel. Et ca fait rapidement tout planté.


    Merci en tout cas, je vais essayer de voir ce AllocMemCount.

    PLUS FORT ENSEMBLE !Et plus joli aussi
    (\ _ /)
    (='.'=) Voici Lapinou.
    (")-(")
    Aidez le à conquérir le monde en le reproduisant.

    http://ashbasket.free.fr

  4. #4
    Membre habitué Avatar de jambonstar
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 161
    Points
    161
    Par défaut
    Re bonjour,

    Apres quelque tests de AllocMemCount et AllocMemSize, je pense que ce n'est pas vraiement representatif de la mémoire qu'occupe mon appli.

    Par exemple je crée un bitmap de 1024x1024x24b (soit environ 3Mo) et la difference entre 2 allocMemSize et de seulement 200o. J'y comprend pas grand chose. Mais en tout cas c'est pas exactement se que je cherche.


    PLUS FORT ENSEMBLE !Et plus joli aussi
    (\ _ /)
    (='.'=) Voici Lapinou.
    (")-(")
    Aidez le à conquérir le monde en le reproduisant.

    http://ashbasket.free.fr

  5. #5
    Membre habitué Avatar de jambonstar
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 161
    Points
    161
    Par défaut
    Je vois que tout le monde seche ?

    Est-ce parce que personne ne comprend ma demande ?

    Ou peut-etre c'est trop compliqué ?

    Enfin si vous avez meme une once de réponse, j'en veux bien volontié.

    Par précaution je vais être plus clair dans une 2° explication du probleme:


    Ce que je voudrais c'est pouvoir obtenir depuis une procedure la taille de l'executable. C'est la valeur que l'on obtient dans le gestionnaire des taches en face de chaque processus.

    La fonction AllocMemCount, ne va pas, a moins que je ne sache pas la faire fonctionner.

    Une idée ? Please :

    PLUS FORT ENSEMBLE !Et plus joli aussi
    (\ _ /)
    (='.'=) Voici Lapinou.
    (")-(")
    Aidez le à conquérir le monde en le reproduisant.

    http://ashbasket.free.fr

  6. #6
    bjl
    bjl est déconnecté
    Membre averti Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Points : 338
    Points
    338
    Par défaut
    GetHeapStatus peut être....

  7. #7
    Membre habitué Avatar de jambonstar
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 161
    Points
    161
    Par défaut
    je vais voir, je te remercie.

    Pour l'instant, aucune des valeurs ne me donne la valeur affiché dans le gestionnaire des taches, mais je vais regarder ca de plus pres, il faut peut etre que je combine tout ca pour l'obtenir.

    Merci .

    PLUS FORT ENSEMBLE !Et plus joli aussi
    (\ _ /)
    (='.'=) Voici Lapinou.
    (")-(")
    Aidez le à conquérir le monde en le reproduisant.

    http://ashbasket.free.fr

  8. #8
    Membre habitué Avatar de jambonstar
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 161
    Points
    161
    Par défaut
    Visiblement c'est pas bon.

    J'ai réalisé le test suivant. Je crée un bitmap de 1024 par 1024.

    Dans le gestionnaire des taches, ca augmente de 3,7Mo, logique.
    Mais aucune valeur de GetHeapStatus ne bougent...

    Je désespere un peu. Surtout que je ne trouve pas d'autres moyens de verifier ces valeurs...
    Mon appli fait fonctionner du materiel qui n'accepte pas du tout le débugage.... il me faut une instruction à tout prix...

    PLUS FORT ENSEMBLE !Et plus joli aussi
    (\ _ /)
    (='.'=) Voici Lapinou.
    (")-(")
    Aidez le à conquérir le monde en le reproduisant.

    http://ashbasket.free.fr

  9. #9
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    J'ai trouvé ceci par hasart en cherchant autre chose:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.FormActivate(Sender: TObject);
    var
        taille : longint;
    begin
    taille := application.InstanceSize;
    showmessage (inttostr (taille) + ' octets');
    end;
    [Edit:] Mais apparemment, c'est pas ça. Peu importe ce que je mets sur la feuille principale, le nombre de feuille ou le nombre de conposants par feuille, c'est toujours 320 octets!

  10. #10
    Membre habitué Avatar de jambonstar
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 161
    Points
    161
    Par défaut
    Salut zaza,

    Je te remercie de ton aide.

    Mais, oui j'en suis le premier désolé : il y a un mais, cette instruction forte interessante ne me donne que la taille de l'objet instancié. Ce qui doit differe de la réele taille de l'application.

    Pour le coup, le showmessage me donne 320octets. Ce qui doit correspondre à la taille d'une instance de TApplication.

    Je vais finir par peter un cable Mais en meme temps c'est interessant d'apprendre sur la memoire....


    Pourquoi un simple Application.Size n'existe pas... ils pensaient à quoi les mecs quand ils ont fait cette classe.

    PLUS FORT ENSEMBLE !Et plus joli aussi
    (\ _ /)
    (='.'=) Voici Lapinou.
    (")-(")
    Aidez le à conquérir le monde en le reproduisant.

    http://ashbasket.free.fr

  11. #11
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    Testé et approuvé.
    Il renvoie la valeur de la colonne "Utilisation mémoire"
    http://www.swissdelphicenter.ch/en/showcode.php?id=2276

    Ps : Sympa l'unité PsApi dont j'ignorais son existance.

  12. #12
    Membre habitué Avatar de jambonstar
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 161
    Points
    161
    Par défaut
    MERCI MERCI MERCI MERCI MERCI


    Merci à tous !

    Tu viens de m'éviter l'achat d'une corde

    PLUS FORT ENSEMBLE !Et plus joli aussi
    (\ _ /)
    (='.'=) Voici Lapinou.
    (")-(")
    Aidez le à conquérir le monde en le reproduisant.

    http://ashbasket.free.fr

Discussions similaires

  1. Réponses: 12
    Dernier message: 16/10/2008, 11h17
  2. Réponses: 2
    Dernier message: 06/06/2006, 13h59
  3. [C#] Comment implementer l'arrêt/reboot d'une application ?
    Par papouAlain dans le forum Windows Forms
    Réponses: 5
    Dernier message: 13/02/2006, 15h08
  4. Réponses: 3
    Dernier message: 28/06/2005, 09h07
  5. Utilisation Mémoire d'une application
    Par scorplex dans le forum Composants VCL
    Réponses: 8
    Dernier message: 21/05/2005, 03h01

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