Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





std::stringstream come memoria a lo largo del tiempo?

Iniciado por Warchief, 17 de Enero de 2007, 01:01:20 AM

« anterior - próximo »

Warchief

Tenía unos problemas de consumo de memoria continuo en mi juego. Al final he llegado a esto:


#include <sstream>
int main(int argc, _TCHAR* argv[])
{
   while( true ) {
   std::stringstream keySS;
   }
return 0;
}


Uhm. Si lo ejecuto se pone a comer memoria como un loco. Cosa que no sucede con otras clases (como string). ¿Alguna sugerencia y/o comentario? (¿aparte de usar un static? :))

<edit>
Bug?


<edit2> Y otra pregunta mejor es, ¿por qué no lo detecta el Visual Leak Detector?

shephiroth

No deberias declarar la variable fuera del while??? Ten en cuenta el ambito, si la creas dentro del while, ese es su ambito, por lo q en cada vuelta tiene q crear y destruir el objeto. Aunque esto deberia dejar la memoria libre...es raro...

Warchief

Cita de: "shephiroth"No deberias declarar la variable fuera del while??? Ten en cuenta el ambito, si la creas dentro del while, ese es su ambito, por lo q en cada vuelta tiene q crear y destruir el objeto. Aunque esto deberia dejar la memoria libre...es raro...

Hombre, he llegado a ese main pasa aislar el problema. En realidad es:

// Pseudo
while ( juegoCorriendo ) {
 Logica()
 Render()
}

:)

Me parece excesivo declarar todas las variables locales a los métodos de casi todo el juego fuera del while del main. Si fuera una fast compo, a lo mejor :D

<edit>
CitarThis memory leak has been fixed in Service Pack 1, which was release to the public in December 2006. As well as installing the entire Service Pack (over 400MB) on your development machine, you will also have to install the updated VC8 distributable runtime libraries on any machine that your program run ons.
Ale, a actualizar se ha dicho.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.