Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-05-2003
ogorut ogorut is offline
Miembro
 
Registrado: may 2003
Posts: 21
Poder: 0
ogorut Va por buen camino
Gestión de Memoria

Hola a todos.
Estoy creando una aplicación bastante grande y el problema me surge porque hay equipos que cuando estan trabajando con la aplicación se quedan sin memoria y el equipo se queda colgado.

Para cerrar un formulario de mi aplicacion hago lo siguiente:

en el evento OnClose tengo un Free.
y en el OnDestroy un Cancel de las tablas que uso en ese Form.

No se si hay algo mal o hay otro metodo mejor para liberar memoria.

Gracias.
Responder Con Cita
  #2  
Antiguo 09-05-2003
Avatar de __marcsc
__marcsc __marcsc is offline
Miembro
 
Registrado: may 2003
Ubicación: Girona
Posts: 577
Poder: 21
__marcsc Va por buen camino
Hola,

en el OnClose quizás deberías poner

Action:= caFree;

y más que un Cancel (que cancela las moificaciones en el registro actual) deberías hacer un Close, que cierra la tabla, no?

Saludos.
Responder Con Cita
  #3  
Antiguo 09-05-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Te cuento que tu problema es muy habitual en los sistemas grandes, y normalmente se debe al exceso de uso de DataSets. Digamos en una pantalla donde se cargan 40 campos de una tabla, posiblemente 20 de estos estén relacionados a otras tablas, y para simplificar la tarea de selección utilizamos comobos con acceso a datos. Una solución que he improvisado, es para los estos campos cuyas relaciones son a tablas “pequeñas” (normalmente menores a una página de datos), cargar estos datos directamente en la memoria, que aunque no lo creas, el uso es menor. Los Querys bidireccionales abusan demasiado de la memoria, por eso cuando no sea necesario, utilizá querys unidireccionales. Otro tema es no hacer abuso de los datamodules, y poner en ellos, que normalmente están creados desde que inicia la aplicación, solo los elemento que serán compartidos por toda la aplicación, y las cosas propias de cada formulario, alojarlas en el formulario. También los recursos que son comunes entre los formulario, por ejemplo los íconos de los toolbars o los logos de la empresa, ay que ponerlos en un solo lado y que todos los forms accedan a ellos.
Otro tema que he leído en este foro, es que muchos programadores dejan que los formularios y reportes en modo “auto create”, o sea que cuando arranca la aplicación, es cargada en su totalidad en la memoria, bueno eso me parece pésimo, sin ánimos de ofender a nadie, pero creo que hay que crearlos cuando se necesiten, a no ser que se requiera mucha velocidad de acceso.
Como último, te recomiendo leer esta página http://www.marteens.com/trick42.htm

Espero haber sido claro…
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
gestion de memoria delphi joni Varios 1 17-03-2005 21:03:36
TIdHTTPServer y el uso de memoria enlavin Internet 1 15-10-2004 12:49:21
manejo de la memoria en delphi jac000y Varios 7 03-02-2004 15:03:28
CreateFileMapping (memoria compartida) Al González API de Windows 2 18-12-2003 15:04:44
Gestion de Memoria craven Varios 1 04-07-2003 04:31:16


La franja horaria es GMT +2. Ahora son las 02:27:40.


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