Bonjour � tous,
J'ai un programme qui se charge de charger des donn�es stock�es dans une base de donn�es pour les stocker dans des objets en m�moire.
A la fin du programme, je calcul aupr�s de mes gestionnaire la taille utilis�e des objets stock�es (sizeof(T) * Ges<T>.getCount()), o� T peut-�tre un client, un v�hicle, enfin bref, un objet metier.
J'ai �galement un gestionnaire de m�moire qui poss�de une map r�f�ren�ant les pointeurs avec leur bloc de donn�es contenant notemment la taille allou�e pour chaque pointeur.
Je n'ai pas d'IHM, mon programme est une console, en dehors de mes objets m�tiers, j'ai 4 gestionnaires qui ne stockent quasiment rien (Un gestionnaire de configuration, un gestionnaire de log, un gestionnaire IO, et le gestionnaire de m�moire, d�sactiv� en debug).
Et tous mes objets metier sont stock�s dans des vectors, sous forme de pointeur. Apr�s chargement, j'ai 241852 pointeurs stock�s dans ces vectors.
Ca bouffe quelle taille un pointeur ?
Apr�s quelques tests, je rel�ve ces donn�es :
Debug :
- Utilisation des objets metiers : 393,94Mo
- Utilisation de la m�moire calcul�e par le gestionnaire de m�moire : 393,95Mo
- Utilisation de la m�moire indiqu� par le gestionnaire de processus Windows : 1 217Mo
Et en Relase (ex�cution de l'exe directement, sans passer par VS)
- Utilisation des objets metier : 257,703Mo
- Le gestionnaire de m�moire est d�sactiv�
- Utilisation de la m�moire indiqu� par le gestionnaire de processus Windows : 515,10Mo
Comment expliquer cette utilisation de m�moire indiqu� par le gestionnaire Windows comme 3 fois plus que calcul�e dans mon programme en debug et 2 fois plus en Release ?
Peut-t-on r�duire �a ?
Merci
A bient�t
Partager