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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-04-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: Nov 2003
Posts: 927
Poder: 15
rastafarey Va por buen camino
Manejo de memoria

Sera buena idea sustituir el manejador de memoria de delphi.

O sera qu ele estoy dando mal uso.

Tengo un memo en un forma
y el windows me dice que la aplicacion ocupa 2.123 kb
(de aqui en adelante me refiero a lo que me notifica
windowscomo memoria en uso por la aplicacion
como W:memoria ejm W:2.123 kb)
Código Delphi [-]
 
Procedure Forma1.Limpiar;
Begin
   Memo1.Lines.Clear;
End;

Procedure Forma1.Cargar;
Const
   N= 1000;
Begin
   For I := 1 to N Do 
     Memo1.Lines.Add(Format('Linea-%d', [i]));
End;

//Boton de limpiar
Procedure Forma1.buton1(Sender: tobject);
Begin
   Limpiar;
End;

//Boton de cargar
Procedure Forma1.buton2(Sender: tobject)
Begin
   Gargar;
End;
hago click en el boton de cargar y
w:2.456
una vez mas
w:2.999

y asi susecivamente

poro al hacer click en boton de limpiar
w:2.999

luego vuelvo a cargar
e igual
w:2.999
debo hacer click dos veses mas
que cambie el uso de memoria de la plicacion

Mi pregunta es si windows esta equivocado o
delphi no esta liberando la memoria o como deberia
hacer para liberar la memoria.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.

Última edición por rastafarey fecha: 06-04-2005 a las 18:56:20. Razón: correcion
Responder Con Cita
  #2  
Antiguo 06-04-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: May 2003
Ubicación: Guatemala
Posts: 6.243
Poder: 22
jachguate Va por buen camino
Podria tratarse de lo que Ian Marteens ya nos habla en su truco Liberando memoria inactiva.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 06-04-2005
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: Sep 2004
Ubicación: Medellín - Colombia
Posts: 3.517
Poder: 19
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
No te preocupes con lo que ves. Empezando porque no es una forma confiable de medir memoria y no estas teniendo en cuenta la administración automatica que hace Delphi con los strings y la clase TStringList y otras cosas (como los caches y precargas de memoria y otras cosas)...

En segundo lugar, los valores que te da el task manager NO son los que supones. Esos NO marcan la VERDADERA memoria sino que incluyen las reservas de memoria que el sistema operativo reserva para la aplicacion (de hecho puede dar MENOS porque no necesariamente muestran los subprocesos u otras cosas). Como dice el articulo de Ian, esa memoria se libera al minimizar la aplicacion. La cosa es que no solo se libera la memoria de inicializacion sino que se resetea la reserva de memoria.

En conclusion?

Ignora el task manager. No sirve para medir confiablemente el uso de memoria. Peor aun en aplicaciones servidoras.

Busca en http://www.sysinternals.com/ verdaderas utilidades al respecto que si son utiles para programadores y administradores de sistemas. Ademas, usar una herramienta como MemProf o AQTime de http://www.automatedqa.com/ es mucha mejor idea.

El administrador de Memoria que incluye Delphi es suficientemente bueno, de hecho muy bueno... sin embargo si se cumple que:

- La aplicacion es de tipo servidora
- Multiples hilos
- Multiples procesadores
- Periodos prolongados de uso o grandes cantidades de memoria

Entonces en ese caso SI justifica buscar un administrador sustituto, debido a que con el administrador de memoria de Delphi la memoria se fragmenta con el tiempo (en estos escenarios de uso) . En base a lo que he leido, este es un administrador de memoria MUY bueno: http://www.nexusdb.com/showpage.asp?Id=98, aunque hay otros disponibles y cualquiera es una mejora sobre el de Delphi para los casos que te puse.
__________________
Nuevo Blog.
Ahora en Twitter!.
Responder Con Cita
  #4  
Antiguo 07-04-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: Nov 2003
Posts: 927
Poder: 15
rastafarey Va por buen camino
Bien

Gracias por su respuesta.

Lo que me han dicho me termina de aclarar las dudas.

NexusDb Ya lo he probado.

Pero se les agradece todo lo dicho.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
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


La franja horaria es GMT +2. Ahora son las 14:52:18.


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