J'ai un fichier std :: vector d'une classe appelée OGLSHAPE.Est-ce un comportement normal pour un vecteur std ::?
chaque forme a un vecteur de SHAPECONTOUR struct qui a un vecteur de flotteur et un vecteur de vecteur de double. il a aussi un vecteur d'une structure de contour qui a un vecteur de flottant dedans. Initialement, mon programme démarre en utilisant 8,7 Mo de mémoire RAM. J'ai remarqué que lorsque j'ai commencé à les remplir, en ajoutant des doubles et des flotteurs, la mémoire s'est rapidement élevée, puis s'est stabilisée. Lorsque j'efface le vecteur OGLSHAPE, environ 19 Mo sont encore utilisés. Ensuite, si je pousse environ 150 autres formes, puis les effacer, j'utilise maintenant environ 19,3 Mo de RAM. J'aurais pensé cela logiquement, si la première fois il est passé de 8,7 à 19, que la prochaine fois il irait jusqu'à environ 30. Je ne suis pas sûr de ce que c'est. Je pensais que c'était une fuite de mémoire mais maintenant je ne suis pas sûr. Tout ce que je fais, c'est pousser les nombres dans std :: vectors, rien d'autre. Donc je m'attendrais à retrouver toute ma mémoire. Qu'est-ce qui pourrait causer ça?
Merci
* modifier, d'accord la fragmentation de la mémoire d'allouer beaucoup de petites choses, comment peut-il être résolu?
Quelle plate-forme êtes-vous et comment mesurez-vous l'utilisation de la mémoire? –
"Qu'est-ce qui pourrait causer cela?" Une fuite de mémoire dans OGLSHAPE pourrait facilement le faire. – SigTerm
Y a-t-il une chance que vous affichiez une version simplifiée de votre code? – nas