C++ : problème de stockage de millions de coordonn - Stockage de coordonnées points et faces

Bonjour,

Juste une question sur un problème qui est en train de me rendre zin-zin (mais ca forge le caractère :confused: ).

Je récupère des coordonnées de points et de faces à partir d’un fichier obj. et je dois les utiliser pour divers calculs. Mon code marche quand il s’agit d’un tout petit fichier mais quand il est important c’est un million de fois trop long.

Pour l’instant je les stocke dans des classes : chaque objet de la classe est un point avec 4 attributs (identifiant, valeur en x, en y et en z) et le même principe pour les faces. Résultat mes classes point et faces se retrouve avec un million d’objet .

Que me suggéreriez vous pour un stokage et une manipulation de ces données.

Merci :whistle:

Bonjour fea,
je suppose que tu fais un “new” de la classe a chaque nouvelle cocordonée ?
si c’est le cas, l’allocation de mémoire de façon dynamique prend du temps.
je te conseille d’allouer à chaque fois un plus grand nombre que le besoin
ou de compter le nombre de coordonée et d’allouer en une fois.

Je te suggère de faire un allocateur de masse, et d’allouer par tableaux de 1024 objets ou suffisament. Ca prend pas beaucoup de temps à faire.

As-tu songé à utiliser une base de données ?

Oui j’y ai songé.

Mais c’est un peu trop tard,mon stage se termine bientôt mais cela fera partie de ma conclusion quant à l’optimisation.
quoiqu’il en soit j’ai opté pour des vectors et ca va beaucoup plus vite.

merci bcp.