Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-07-2005
escullar escullar is offline
Miembro
 
Registrado: feb 2005
Posts: 67
Poder: 20
escullar Va por buen camino
Question Problemas con la memoria de windows

Hola a todos/as

Tengo una aplicacion desarrollada en delphi 5 que llegado a un determinado punto y debido al exceso de formularios me consume mucha memoria y he probado a poner cafree,release,free. El problema es que el tiempo que tarda en liberar realizar la comprobacion el windos para liberarla a veces excede y ya es demasiado tarde.

¿Existe alguna forma de decirle al windows que libere la memoria en el instante actual? (esto me solucionaria el problema)

Muchas gracias y un saludo
Responder Con Cita
  #2  
Antiguo 07-07-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Una pregunta, no tendrás todos los furmularios en "autocreate", en vez de available e irlos creando cuando sea necesario y destruyéndolos al cerrarlos?

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 07-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Hay un componente en Torry's Delphi Pages de nombre MaxMem que "desfragmenta" la memoria RAM mediante un algoritmo en ensamblador: es gratuito y de código abierto.

No sé si es exactamente algo así lo que precisas: diría que no, puesto que esos consumos excesivos de memoria deberían tal vez solucionarse de otra forma, pero, en todo caso, por si te es útil, ahí queda referido.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 08-07-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Hola escullar:

He leído otros post que a muchas personas les ha sucedido alguna vez, y la mayoría de esos problemas surgían porque quedaban los query o las tables abierto/a, deberías chequear tambien esa posiblidad.

Saludos.
Responder Con Cita
  #5  
Antiguo 08-07-2005
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Antes de ponerte a aplicar soluciones, conoce la pregunta.

Debes determinar EXACTAMENTE que es lo que vas a arreglar...

Basicamente:

En las propiedades del proyecto excluye a todos los formularios que no deben iniciar automaticamente (los que si deben son el formulario principal y los datamodules).

Donde hagas las llamadas a los formularios, los creas manualmente

Asegurate que cierras todos los recuersos externos (ej: Conexiones a bases de datos, accesos a archivos, etc... TODO lo que esta FUERA del codigo de la aplicacion) esto es 100% aplicable incluso para entornos con recolector de memoria...

El resto de los problemas que tengas los solucionas:

1- Con un profiler, como MemProof o AQTime

2- Para aplicaciones con gran demanda de memoria y que deben escalar a multiples procesadores, con un administrador de memoria alternativo como FastMM4.

Pero fundamentalmente, con buenas practicas de codificacion:

1- Escribir codigo claro
2- Separar funciones: Independizar acceso a datos de GUI de logica
3- Centralizar funcionalidad comun
4- Tener disciplina en la creacion de objetos...
__________________
El malabarista.
Responder Con Cita
  #6  
Antiguo 08-07-2005
escullar escullar is offline
Miembro
 
Registrado: feb 2005
Posts: 67
Poder: 20
escullar Va por buen camino
Question Espongo el problema de memoria

Hola a todos y muchas gracias por contestar.

El problema es que yo creo los formularios y conforme voy aumentando su numero por otro lado voy liberando.

El caso es que cuando uno libera memoria el windows no actua inmediatamente sino que se toma su tiempo y dado un intervalo de tiempo realiza la comprobacion para liberar la memoria. Esto es lo que me ocasiona el problema ya que pasado este tiempo cuando windows hace la comproabación ya es demasiado tarde pues la maquina esta sin recursos y digamos que "explota".

Mi intencion es la de decirle a windows que compruebe la memoria a liberar antes de que realice antes la comprobacion por su cuenta. De esta manera controlo los formularios destruidos y liberados y cuando lo crea oportuno decirle a windows "Libera memoria".

Un saludo.
Responder Con Cita
  #7  
Antiguo 08-07-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Buscando en el foro por "libera memoria" se llega a este hilo http://www.clubdelphi.com/foros/show...Libera+memoria
donde se hace referencia al truco de Ians Marteens.

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #8  
Antiguo 08-07-2005
escullar escullar is offline
Miembro
 
Registrado: feb 2005
Posts: 67
Poder: 20
escullar Va por buen camino
Question Muchas gracias

Voy a relizar una pequeña prueba pero la verdad es que tiene buena pinta.

Muchas gracias y un saludo.
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 01:38:47.


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