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
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Uso de memoria y minimizar
- ignacio
- Site Admin
- Mensajes: 9440
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Uso de memoria y minimizar
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
>
>
>
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
>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
-
- Mensajes: 10
- Registrado: Mar Abr 10, 2007 1:24 am
Uso de memoria y minimizar
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
>
>
>
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
>
>
>