Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1626 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  problème de fuite mémoire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème de fuite mémoire

n°1488842
Amonchakai
Posté le 08-12-2006 à 19:12:15  profilanswer
 

Bonjour,  
   Bon, j'ai un petit soucis : voilà dans un de mes programme je fais un truc qui ressemble a ça :
 

Code :
  1. #include<iostream>
  2. #include<string>
  3. #include<boost/timer.hpp>
  4. #include<boost/lexical_cast.hpp>
  5. int main()
  6. {
  7. boost::timer t;
  8. t.restart();
  9. std::string s;
  10. while(true)
  11. {
  12.  s = std::string("time : " ) + boost::lexical_cast<std::string>(t.elapsed());
  13. }
  14. return 0;
  15. }


 
et quand je regarde le gestionnaire des taches je vois que la mémoire utilisé par ce truc ne fait que croitre et a très grande vitesse... j'avoue ne pas comprendre pourquoi. Normalement là je n'utilise que des outils sécurisés, donc je croyais que j'avais aucune chance d'avoir de fuite mémoire...
aussi si vous avez une idée
 
Merci :)
 

mood
Publicité
Posté le 08-12-2006 à 19:12:15  profilanswer
 

n°1488866
jesus_chri​st
votre nouveau dieu
Posté le 08-12-2006 à 19:51:01  profilanswer
 

il n'y a pas de fuite dans ce programme. Laisse-le tourner indéfiniement, tu verras que ça ne satureras pas ta mémoire. C'est juste l'os qui doit pas se forcer à libérer, surtout si c'est le seul prog que t'exécutes.

n°1488867
Amonchakai
Posté le 08-12-2006 à 19:55:45  profilanswer
 

ok,  
   ça m'inquiétais de voir que ça croissait comme ça. Je croyais que ça allais pas s'arrêter...
 
Merci :)

n°1488891
++fab
victime du syndrome IH
Posté le 08-12-2006 à 21:24:29  profilanswer
 

Si ce programme consomme une mémoire démesurée, c'est peut-être qu'il y a un bug quelque part (?)

n°1488964
Amonchakai
Posté le 09-12-2006 à 09:54:05  profilanswer
 

Bren, oui mais c'est justement ces quelques lignes qui font ça. Si tu compile mon exemple on peut justement observer ce problème...

n°1488972
++fab
victime du syndrome IH
Posté le 09-12-2006 à 10:08:01  profilanswer
 

je n'observe pas pas ce phénomène sur ma machine.

n°1488982
Amonchakai
Posté le 09-12-2006 à 10:54:13  profilanswer
 

Ben, j'avoue que je sais pas quoi dire... car quand je compile un projet qui contient que ça et bien, moi ça le fait....
Mais bon, apriori c'est comme Jesus_christ a dit : c'est que mon OS qui ne doit pas vouloir libérer la mémoire, tout de suite...

n°1488984
++fab
victime du syndrome IH
Posté le 09-12-2006 à 11:04:30  profilanswer
 

Quel est ton OS, ton compilateur, et la taille mémoire que ça occupe ?

n°1488991
Amonchakai
Posté le 09-12-2006 à 11:26:17  profilanswer
 

Ben, mon OS c'est WinXP, le compilo c'est celui de Visual Studio 2005, et la mémoire qu'il prend c'est justement pas constant (je l'ai laisse croitre jusqu'à 200Mo et je le sentais bien capable de continuer ...)

n°1489003
++fab
victime du syndrome IH
Posté le 09-12-2006 à 12:00:51  profilanswer
 

Ben laisse le tourner encore, et regarde jusqu'où ça monte. Si ce n'est pas une fuite, c'est bien imité. 200 Mo de mémoire, ce n'est pas normal et c'est probablement un bug:
1 - de Boost
2 - de Visual
3 - de WinXP
 
Adresse toi à Boost voir ce qu'ils disent.

mood
Publicité
Posté le 09-12-2006 à 12:00:51  profilanswer
 

n°1489008
verdoux
And I'm still waiting
Posté le 09-12-2006 à 12:15:15  profilanswer
 

Dans le gestionnaire des tâches ça bouffe environ 700 ko/s supplémentaire sur ma machine.
 
lexical_cast utilise std::stringstream qui est buggé avec VC++ 2005 (et apparemment ça remonte à std::basic_iostream):
 
http://forums.microsoft.com/MSDN/S [...] 1&SiteID=1
 
http://connect.microsoft.com/Visua [...] ckID=98861
 
Je ne comprends pas comment MS peut laisser un bug comme ça trainer pendant 1 an.


Message édité par verdoux le 09-12-2006 à 12:31:58
n°1489018
Amonchakai
Posté le 09-12-2006 à 12:28:22  profilanswer
 

Je confirme que ça viens bien de Visual car Code::Block n'a pas de problème lui.
 
Sinon, en fait je viens de voir que ça le fait que quand je compile en mode debug. En release ça ne le fait plus... c'est bizarre quand même...  

n°1489020
verdoux
And I'm still waiting
Posté le 09-12-2006 à 12:31:14  profilanswer
 

Chez moi, ça le fait aussi en release.

n°1489151
bjone
Insert booze to continue
Posté le 10-12-2006 à 02:03:01  profilanswer
 

exact, par contre chez moi ça le fait pas en release.
 
il faudrait regarder chez ms si y'a un patch.

n°1489162
Amonchakai
Posté le 10-12-2006 à 10:07:49  profilanswer
 

Salut,
 
J'aurais une petite question : quand vous dites que ça remonte à std::basic_iostream ça veut dire que toutes les entrées/sortie vont fuir ?
Par ce que là je viens de voir que j'ai le même problème avec fstream... cela viens donc de la même raison ?
 
au passage quelqu'un a trouvé le patch, par ce que moi je ne l'ai pas trouvé...
 
 
Merci

n°1489207
bjone
Insert booze to continue
Posté le 10-12-2006 à 14:24:14  profilanswer
 

ça pourrait être un Heisenbug (tout de suite les beaux mots) dû à la compilation en debug ? (c'est marrant verdoux, parceque sur ce bout de code, j'ai pas le prob en release)

n°1489236
Amonchakai
Posté le 10-12-2006 à 15:48:23  profilanswer
 

oui, moi aussi en Release tout va bien....


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  problème de fuite mémoire

 

Sujets relatifs
[C#] Problème pour sérialiser via une MemoryStream[Java + JFreeChart] Problème de contour
Probleme avec la classe Vector ?![Oracle ASM] Problème d'optimisation de requête suite à migration
JavaScript heure[Résolu] JDBC Taille memoire des resultset
Probleme serveur sql avec easyphp??probléme de mise a jour
[RESOLU] [AJAX] probleme d'envoi d'un "+" par POST[PHP5] probleme interface
Plus de sujets relatifs à : problème de fuite mémoire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR