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

Delphi Discussion :

Lister tout les objets de mon prog c'est possible?


Sujet :

Delphi

  1. #1
    Membre confirmé
    Avatar de korntex5
    Homme Profil pro
    Directeur technique
    Inscrit en
    Juin 2004
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 413
    Points : 454
    Points
    454
    Billets dans le blog
    1
    Par défaut Lister tout les objets de mon prog c'est possible?
    Salut je voudrai savoir si je peux lister tout les objets qui ont étés crés et qui sont toujours présent(tobject, tstringlist,...) par mon applie, afin de faire un sizeof() dessus pour connaitre leur consommation mémoire?
    Que la source soit avec moi!
    Jérôme JEAN-MARAULT

  2. #2
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    Par défaut
    Salut!

    SizeOf() ne te donneras pas la consommation de mémoire de ton objet mais celui du pointeur, c'est à dire toujours 4 octets par objet (essaie-le avec un TObject et un TStringList, tu vas voir les pointeurs ont la même taille).

    Bref, tu n'es pas plus avancé....
    -Slimjoe

  3. #3
    Membre confirmé
    Avatar de korntex5
    Homme Profil pro
    Directeur technique
    Inscrit en
    Juin 2004
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 413
    Points : 454
    Points
    454
    Billets dans le blog
    1
    Par défaut
    en effet j'ai commis une erreur mais comment faire, je suis sur que c'est possible
    Que la source soit avec moi!
    Jérôme JEAN-MARAULT

  4. #4
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    Par défaut
    Ça m'intéresse vraiment ce problème...

    Mais j'ai beau y réfléchir, je bute toujours sur la même chose : comment mesurer la taille en mémoire d'une méthode ? Free(), par exemple, ça occupe combien d'octets ?

    Pour ce qui est de compter les objets créés, perso, je modifierais la source de TObject et TApplication. Dans TApplication, j'ajouterais un TObjectList et dans TObject je modifierais le constructeur pour qu'il ajoute self à Application.MonObjectList et qu'il y retire self dans le destructeur. Pour connaître le nombre d'objets créés tu fais alors Application.MonObjectList.Items.Count.

    C'est pas une technique ultra sure (rarement une bonne idée de jouer dans les sources de Delphi) mais bon... si ce n'est que pour s'amuser pourquoi pas
    -Slimjoe

  5. #5
    Membre confirmé
    Avatar de korntex5
    Homme Profil pro
    Directeur technique
    Inscrit en
    Juin 2004
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 413
    Points : 454
    Points
    454
    Billets dans le blog
    1
    Par défaut
    Très bonne question je cherche aussi, pour les procédure moi j'ai créé un objet memlog qui contabilise la mémoire prog au moment ou tu pose un beginmemlog et lors du endmemlog puis fais des stat sur la consommation ponctuelle max moyenne... mais cela oblige de poser les deux bornnes dans le prog à chaque fois

    quant au listing des objets on peu ptet surcharger tobject sans modifier la vcl en modifiant le aftercreate et le beforedestroy pour renseigner la liste des objets
    Que la source soit avec moi!
    Jérôme JEAN-MARAULT

  6. #6
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Il y aussi des logiciels qui sont spécialisés dans la mesure de mémoire RAM qu'utilise une application. Cherche un peu sur le Web et tu vas trouver :-)
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  7. #7
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    J'utilise FastMM4 pour détecter les fuites de mémoire, plutot pas mal.
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  8. #8
    Membre confirmé
    Avatar de korntex5
    Homme Profil pro
    Directeur technique
    Inscrit en
    Juin 2004
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 413
    Points : 454
    Points
    454
    Billets dans le blog
    1
    Par défaut
    je connais ces logiciels mais je ne cherche pas les fuites mémoires mais l'évolution de mon prog et de sa mémoire, de façon a optimiser les procédures couteuses et les objets trop lourds
    Que la source soit avec moi!
    Jérôme JEAN-MARAULT

  9. #9
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Regarde peut être du coté des gestionnaires mémoire sur CodeCentral (Borland).

  10. #10
    Membre confirmé
    Avatar de korntex5
    Homme Profil pro
    Directeur technique
    Inscrit en
    Juin 2004
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 413
    Points : 454
    Points
    454
    Billets dans le blog
    1
    Par défaut
    j'ai pas trouvé, de plus c bizare aucunes des sources ne me sont plus disponibles j'ai une erreur a chaque fois, vous avez lz même problème?
    Ou borland laisserait-il tombé code central?


    autrement la taille mémoire d'un objet =
    taille de toutes ses propriétés
    + 4 octets de pointeur *(nb fonctions/procédures)
    + 4 octets de pointeur *(nb objets)
    + taille de ses objets...

    Que la source soit avec moi!
    Jérôme JEAN-MARAULT

Discussions similaires

  1. Lister toutes les propriétés d'un objet
    Par Heinek dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 10/03/2011, 16h30
  2. [Métadonnées] Lister tous les objets SAS de mon environnement
    Par fbatch dans le forum Administration et Installation
    Réponses: 3
    Dernier message: 01/07/2010, 16h03
  3. lister tout les modules installer de perl
    Par black_code dans le forum Modules
    Réponses: 6
    Dernier message: 05/08/2005, 18h20
  4. [firebird 1.5] lister toutes les tables
    Par c0rwyn dans le forum SQL
    Réponses: 2
    Dernier message: 02/09/2004, 14h36
  5. Réponses: 8
    Dernier message: 17/10/2002, 12h52

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