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?
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?
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é....
en effet j'ai commis une erreur mais comment faire, je suis sur que c'est possible
Ç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![]()
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
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.
Partager