Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-09-2005
SoulSoldier SoulSoldier is offline
Miembro
 
Registrado: may 2005
Posts: 26
Poder: 0
SoulSoldier Va por buen camino
Question Problemas con el manejo de la RAM

Buenas tardes. Tengo un problema con el manejo de la RAM. Estoy consciente de que el manejo de memoria dinámica dentro de C++ debe ser liberado igualmente por el programador, pero no encuentro el punto de mi programa donde se realiza el incremento de memoria. Lo que me preocupa es que el manejo de archivos se hace de manera constante, además de manejar los puertos. Cada 4 Segundos se deben escribir 30 archivos diferentes y escribir en el puerto serial. El incremento de memoria se hace crítico al pasar el tiempo, y dado que en el programa se implementa un sistema de monitoreo industrial, el programa debe estar corriendo constantemente, tal vez por días. Uno de los síntomas de incremento de memoria se presenta cuando consulto los archivos tipo CVS desde el programa, con el componente TAdvColumnGrid (externo), el programa incrementa su consumo de memoria como es normal, pero al cerrar el Formulario donde esta alojada la tabla, no se baja el uso de memoria, como es de esperarse. Mi duda radica en si es necesario manejar también el manejo de memoria para todos los componentes, o si ellos lo hacen automáticamente. ¿Cómo puedo optimizar mi programa en consumo de memoria, si este tiene que acceder a modificar archivos cada vez más grandes?
Responder Con Cita
  #2  
Antiguo 16-09-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 23
Crandel Va por buen camino
El manejo de memoria lo debes hacer vos dependiendo de cada caso. Por ejemplo:
* si es un componente que pusiste en el formulario, el dueño es el formulario y el se encarga de crearlo y destruirlo.
* si creaste un componente dinamicamente y le diste como padre al formulario, tambien el lo destruye.
* si creaste un componente dinamicamente y no le diste padre, vos sos el encargado de destruirlo.
* Si creaste alguna clase (que no sea componente) u otra estructura de datos dinamicamente, vos sos el responsable de destruirlo.

En todos los casos , sos vos el que debe saber que es lo que estas haciendo.

Solo viendo el código fuente se puede saber donde es el lugar donde no estas liberando la memoria.
__________________
[Crandel]
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 23:48:41.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi