Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problemas con la memoria de windows (https://www.clubdelphi.com/foros/showthread.php?t=23142)

escullar 07-07-2005 18:59:44

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

marcoszorrilla 07-07-2005 19:01:20

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.

dec 07-07-2005 21:04:57

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.

lucasarts_18 08-07-2005 03:48:51

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.

mamcx 08-07-2005 04:55:18

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...

escullar 08-07-2005 09:09:15

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.

Lepe 08-07-2005 12:47:04

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

escullar 08-07-2005 14:42:47

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

Muchas gracias y un saludo.


La franja horaria es GMT +2. Ahora son las 16:03:27.

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