Página 1 de 1

Uso de memoria y minimizar

Publicado: Sab Abr 07, 2007 3:27 am
por Fredy
Hola,
Estoy viendo en los procesos del administrador de tareas mi aplicación y
veo que el uso de la memoria está creciendo más de la cuenta y no sé por
qué, ya que el formulario es bastante sencillo, aunque usa varios sqlquery.
También e visto que al minimizar la aplicación, se libera la memoria.
De 15.000 Kb, minimizo y se queda en 564 Kb, restauro y se queda en 5.700 Kb
¿Alguien me pude explicar por qué pasa esto?. Más o menos sé que tiene que
ver con el sistema de windows para recuperar memoria, pero no lo tengo nada
claro.
¿Hay alguna función que me permita liberar la memoria en un momento dado?
¿Hay alguna función que me diga cuánta memoria está usando mi programa sin
tener que recurrir al administrador de tareas?
Un saludico,
Fredy

Uso de memoria y minimizar

Publicado: Sab Abr 07, 2007 10:23 am
por ignacio
Fredy,
La memoria es demandada por xHarbour y también por el propio Windows e
igualmente afecta cualquier otro API que estés utiizando como ADO. Es
Windows el que gestiona toda la memoria utilizada por tua aplicación y
aunque tu aplicación libere memoria Windows no la libera inmediatamente sino
cuando realmente lo necesita. La única forma de provocar una liberación
completa de memoria es provocando un minimizado de la aplicación. Desconozco
si existe alguna función del API que haga el mismo cometido, pero la
desconozco.
En mi opinión la mejor forma de saber si una aplicación está perdiendo
memoria es comprobar los valores que devuelve el administrador de tareas
antes y después de habernos pasaedo cierto tiempo por la mayoría de las
opciones de la aplicación. No obstante si estás utilizando otros APIs como
ADO es posible que lo que te digo no sea válido ya que a lo mejor ADO no
libera la memoria de la misma forma que xHarbour.
Un saludo,
"Fredy" <fredy@aglsl.com> escribió en el mensaje
news:[email=a20b86f345ed8c946dbc273a4ea@news.xailer.com...]a20b86f345ed8c946dbc273a4ea@news.xailer.com...[/email]
> Hola,
>
> Estoy viendo en los procesos del administrador de tareas mi aplicación y
> veo que el uso de la memoria está creciendo más de la cuenta y no sé por
> qué, ya que el formulario es bastante sencillo, aunque usa varios
> sqlquery.
>
> También e visto que al minimizar la aplicación, se libera la memoria.
> De 15.000 Kb, minimizo y se queda en 564 Kb, restauro y se queda en 5.700
> Kb
>
> ¿Alguien me pude explicar por qué pasa esto?. Más o menos sé que tiene que
> ver con el sistema de windows para recuperar memoria, pero no lo tengo
> nada claro.
>
> ¿Hay alguna función que me permita liberar la memoria en un momento dado?
>
> ¿Hay alguna función que me diga cuánta memoria está usando mi programa sin
> tener que recurrir al administrador de tareas?
>
> Un saludico,
> Fredy
>
>
>

Uso de memoria y minimizar

Publicado: Mar Abr 10, 2007 1:24 am
por Lautaro Moreira
Hola,
Hace tiempo me paso algo similar, pero usando odbc, y resulta que las
conecciones odbc, no van liberando la memoria que usan para guardar el
entorno.
La unica solucion que encontre, fue detectando los procesos que generan
mas consultas y cada cierto numero de consultas cerrar la coneccion y
abrirla nuevamente, asi como cerrarla al salir de cualquier proceso.
Atte.,
Lautaro Moreira
Fredy escribió:
> Hola,
>
> Estoy viendo en los procesos del administrador de tareas mi aplicación y
> veo que el uso de la memoria está creciendo más de la cuenta y no sé por
> qué, ya que el formulario es bastante sencillo, aunque usa varios sqlquery.
>
> También e visto que al minimizar la aplicación, se libera la memoria.
> De 15.000 Kb, minimizo y se queda en 564 Kb, restauro y se queda en
> 5.700 Kb
>
> ¿Alguien me pude explicar por qué pasa esto?. Más o menos sé que tiene
> que ver con el sistema de windows para recuperar memoria, pero no lo
> tengo nada claro.
>
> ¿Hay alguna función que me permita liberar la memoria en un momento dado?
>
> ¿Hay alguna función que me diga cuánta memoria está usando mi programa
> sin tener que recurrir al administrador de tareas?
>
> Un saludico,
> Fredy
>
>
>