|
Page : 1 2 Page Précédente | |
Auteur | Sujet : [C++] Utilisation memoire trop importante |
Publicité | Posté le 07-07-2003 à 12:14:32 |
fykman Errare Humanum Est | Merci, alors je comprends pas ce qu'il se passe... |
chrisbk - | ben nous non plus
|
Taz bisounours-codeur | ben quand tu redimensionnes un truc par exemple, ça bouffe plein de mémoire. donc si tu as n éléments et que tu veux agrandir ton vecteur à m, tu vas avoir un pic à m+n. tu veux pas donner plus de détail, parce que je pense pas que le problème viennent vraiment de là. donne du code et des mesures. |
HelloWorld Salut tout le monde! | Si tu alloues tes objets un à un avec des news, la taille allouée est supérieure à celle de l'objet. Si tes objets sont assez petits, et que tu en alloues bcp, ça peut venir de là. --------------- FAQ fclc++ - FAQ C++ - C++ FAQ Lite |
Taz bisounours-codeur | et puis y a fuite et fuite. ne pas désalloué un objet c'est une fuite, ne pas désallouer un objet au bon moment, c'est aussi une fuite. donc assure toi de faire le ménage le plus tot possible. jete aussi un oeil si t'as pas des recopie inutile ou ce genre de chose. on a vraiment besoin de quelque chose a se mettre sous la dent parce que la on pietine |
fykman Errare Humanum Est | Desolé de pas avoir repondu avant...
Message édité par fykman le 07-07-2003 à 23:57:35 |
Taz bisounours-codeur | si on ne regarde pas à ton code (pourtant je pense que le problème est là, encore faut il le cernze), tu peux tenter ta chance avec des allocateurs spéciaux (ce que SGI sont pas mals) ou avec un pool (celui de boost est fonctionnel). tu peux aussi tenter des tests avec un GC histoire de voir ce qui se passe.
Message édité par Taz le 08-07-2003 à 00:05:55 |
fykman Errare Humanum Est |
Message édité par fykman le 08-07-2003 à 00:19:33 |
Publicité | Posté le 08-07-2003 à 00:07:30 |
Taz bisounours-codeur | 1) GC => Garbage Collector
Message édité par Taz le 08-07-2003 à 00:39:47 |
Taz bisounours-codeur | donc on veut du code |
fykman Errare Humanum Est | Bon, demain j'essaierai avec des deques pour voir, et je vais aussi tenter d'extraire un bout de code qui montre comment j'utilise les vecteurs, et je le posterai....
Message édité par fykman le 08-07-2003 à 00:54:32 |
Taz bisounours-codeur | bon, ben je patienterai... |
fykman Errare Humanum Est | Bon voici un partie de mon code que j'ai epuré (et un peu simplifié) mais l'utilisation des vecteurs et de la memoire y est. C'est a priori dans cette partie que je consomme beaucoup de memoire. Je precise que dans les autres fonctions que j'appelle dans le code et qui ne sont pas detaillées, il n'y a pas de new ou de delete.
Message édité par fykman le 08-07-2003 à 21:49:14 |
Taz bisounours-codeur | quelques remarqus générales
Message édité par Taz le 08-07-2003 à 22:00:49 |
fykman Errare Humanum Est | quelques remarqus générales
Message édité par fykman le 08-07-2003 à 22:20:50 |
Taz bisounours-codeur | expliciter?
Message édité par Taz le 08-07-2003 à 22:26:08 |
fykman Errare Humanum Est |
Message édité par fykman le 08-07-2003 à 22:42:12 |
Taz bisounours-codeur | t'as pas moyen de passer tes Node/Element par référence? |
fykman Errare Humanum Est |
|
Taz bisounours-codeur | ben y a un surplus de mémoire consommée par les pointeurs, et puis les éléments alloués ne sont pas contigues, bref ça pue la fragmentation à plein nez.
|
Taz bisounours-codeur | for(i = oldElementVect.size()-1; i>=0; i--) {
|
fykman Errare Humanum Est |
|
Taz bisounours-codeur | mesh->removeElement() il fait quoi?
Message édité par Taz le 08-07-2003 à 23:27:03 |
fykman Errare Humanum Est |
|
Taz bisounours-codeur | ben fallait réfléchir un peu à la base |
fykman Errare Humanum Est |
|
Taz bisounours-codeur | ben ne te fies pas au gestionnaire de windows, tout le monde sait qu'il deconne. essaye d'obtenir des chiffres avec un vrai outil |
fykman Errare Humanum Est |
|
Taz bisounours-codeur | bon, en Mo t'alloues combien? c'est quoi la taille des tes objets? leur nombres? avant de trop penser à de la fragmentation, j'ai besoin de quelques nombres.
Message édité par Taz le 08-07-2003 à 23:42:32 |
fykman Errare Humanum Est |
|
Taz bisounours-codeur | comment ça environ? tu peux montrer la declaration de Element pour voir (ou de tout autre gros objet) |
fykman Errare Humanum Est |
|
Taz bisounours-codeur | bon, ben dernier appel: trouve toi un outil ou trace à la main: on a besoin de vrai chiffre sur tes allocations |
fykman Errare Humanum Est |
|
Taz bisounours-codeur | alors ces chiffres? |
joce Architecte / Développeur principal"BugHunter" |
est-ce que déclaré un classe qui n'a pas de classe dérivée en tant que class virtuel bouffe aussi 4 octets ? --------------- Protèges carnets personnalisés & accessoires pour bébé |
Taz bisounours-codeur | oui sans doute. cela dit, tout dépend du compilateur qui est libre d'implémenter tout ça comme il veut. mais bon, ça c'est des economies de pauvre, on a jamais vu de problème de mémoire avec. |
joce Architecte / Développeur principal"BugHunter" |
C'était plus par curiosité qu'autre chose --------------- Protèges carnets personnalisés & accessoires pour bébé |
Publicité | Posté le |
Page : 1 2 Page Précédente |
Sujets relatifs | |
---|---|
[VBA/VB] Utilisation d'une dll - Localisation de la dll | Probleme d utilisation d une DLL externe |
Utilisation de TabStrip [Résolu] | Impossible d'afficher un bitmap transparent dans un DC memoire... |
Script Liberation mémoire vive ? | [C/C++] - Librairies DLL et ActiveX pour l'utilisation du RS232 |
[JAVA] Augmenter la mémoire dispo pour la machine virtuelle | Utilisation du composant MSCHART : pblm de diffusion (MSDATASRC) |
Utilisation de JNI dans une appli web | Pb de requete sous ACCESS (utilisation de max) |
Plus de sujets relatifs à : [C++] Utilisation memoire trop importante |