je vous contacte car j'ai un gros problème de gestion de la mémoire. voici mon contexte. j'ai implémenté une application qui sert a visualiser en 3D des points, courbes et surfaces. pour cela j'ai créé une classe parser, une classe static container (avec en données mebre static listepoints,listecourbes & listesurfaces), et une classe viewer. j'ai aussi des classes d'objets geometriques comme point (avec en donnée membre nom, X, Y, Z).
j'ai un fichier contenant 8700 points environs. en construisant ma liste de points je remplis deja presque 600Mo de Memoire !
avez vous une piste pour commencer à creuser ce soucis ???
dites moi de quelle partie du code vous avez besoin pour identifier le pb.
Effectivement, sans code, ça va être dur de t'aider.
Néanmoins, pour avoir 600Mo de mémoire prise, c'est que tu fais forcément de la duplication en mémoire.
- Vérifie que lorsque tu passes des arguments, tu les passes par références et non par copie
- Vérifie que tu ne fais pas de concaténation de std::string, mais que tu utilises bien un stringstream.
- Utilise le partage de mémoire pour des objets similaires (voir design pattern flyweight)
Si ton application n'est pas trop grosse, je serais curieux de voir les classes conteneurs, et les méthodes qui les manipulent.