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.

Se pierde memoria con xHarbour

Foro público de Xailer en español
Responder
Jorge Mason
Mensajes: 25
Registrado: Mar Oct 05, 2004 1:39 pm

Se pierde memoria con xHarbour

Mensaje por Jorge Mason »

Estimados señores,
El siguiente ejemplo se puede apreciar como se pierde memoria en el
Administrador de Tareas de Windows.
Este problema creo que está perfectamente identificado, pero no se si es
porque desconosco un buen método de hacer una destrucción del objeto.
El problema no se dá exclusivamente con classes que tienen DATAS tipo bloque
!
Esto seguramente afecta tambien a Xailer, pero lo desconozco pues no sé si
usan el mismo motor de objetos.
Tampoco conosco una mejor manera de hacer una destrucción de una clase, por
ahora coloco :
oObjeto = NIL
Esa forma es perfectamente válida por muchas clases que poseo en la
actualidad, inclusive con clases que usan DATAS tipo Array.
Espero que esto se solucione porque si no es así estamos perdiendo el tiempo
con xHarbour, y los proyectos como Xailer y Visual xHarbour tendrían una
pésima base.
Saludos
Jorge Mason
#include "FiveWin.ch"
/*
Autor : Jorge Mason
Description : Classes lost memory in windows with bBlock DATAS
Date : 19/09/2005
*/
STATIC oWnd
STATIC oTimer
FUNCTION Main()
DEFINE WINDOW oWnd TITLE "LOST MEMORY WITH MACROS ON CLASS"
DEFINE TIMER oTimer INTERVAL 500 OF oWnd ACTION Timer()
ACTIVATE TIMER oTimer
ACTIVATE WINDOW oWnd
RETURN nil
FUNCTION Timer()
LOCAL oObject
LOCAL n
FOR n = 1 TO 10
oObject := LostClass():New()
oObject = NIL
NEXT
RETURN nil
CLASS LostClass
DATA aArray
DATA bBlock
METHOD New() CONSTRUCTOR
ENDCLASS
METHOD New() CLASS LostClass
LOCAL bBlock := "{||.T.}"
::aArray = {1,2,3,4,5}
::bBlock = &bBlock
RETURN Self
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Se pierde memoria con xHarbour

Mensaje por jfgimenez »

Jorge,
gracias por la información.
Acabo de adaptar tu ejemplo a Xailer (aquí lo tienes por si quieres probarlo
tú mismo); sólo he hecho dos cambios: he cambiado es el periodo del timer a
100ms para que vaya más rápido y he puesto que cambie el caption de la
ventana cada vez que se dispara el timer, para saber por dónde va.
En mis pruebas no se pierde memoria. Por favor, pruebalo tú también.
Una cosa que sí quiero aclarar es que la versión de xHarbour que estoy
usando, que es la misma que tenemos publicada en nuestra web, corresponde
exactamente a como estaba el CVS el día 31-7-2005.
Y respecto al motor de objetos, nosotros tenemos implementada una
ampliación, que da soporte a propiedades y eventos, pero el motor sigue
siendo el mismo. Y esta versión contiene los cambios que hizo Walter hace
unos meses. Lo que no incluye es los últimos cambios que se han hecho en el
motor de objetos para dar soporte a los .hrb.
Si puedes, por favor, prueba FW con nuestra versión de xHarbour y salimos de
dudas.
--
Un saludo,
José F. Giménez


Attached files Memory.zip (1.6 KB)Â
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Jorge Mason
Mensajes: 25
Registrado: Mar Oct 05, 2004 1:39 pm

Se pierde memoria con xHarbour

Mensaje por Jorge Mason »

José,
Gracias por el ejemplo y efectivamente no se pierde memoria con Xailer !
Entonces hay algo raro, porque también compilé con xHarbour CVS y Xailer y
tampoco pierde memoria !
Entonces ... será un problema de Fivewin, realmente no entiendo.
Saludos
Jorge Mason
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:[email=4332f508@ozsrvnegro.ozlan.local...]4332f508@ozsrvnegro.ozlan.local...[/email]
> Jorge,
>
> gracias por la información.
>
> Acabo de adaptar tu ejemplo a Xailer (aquí lo tienes por si quieres
> probarlo tú mismo); sólo he hecho dos cambios: he cambiado es el periodo
> del timer a 100ms para que vaya más rápido y he puesto que cambie el
> caption de la ventana cada vez que se dispara el timer, para saber por
> dónde va.
>
> En mis pruebas no se pierde memoria. Por favor, pruebalo tú también.
>
> Una cosa que sí quiero aclarar es que la versión de xHarbour que estoy
> usando, que es la misma que tenemos publicada en nuestra web, corresponde
> exactamente a como estaba el CVS el día 31-7-2005.
>
> Y respecto al motor de objetos, nosotros tenemos implementada una
> ampliación, que da soporte a propiedades y eventos, pero el motor sigue
> siendo el mismo. Y esta versión contiene los cambios que hizo Walter hace
> unos meses. Lo que no incluye es los últimos cambios que se han hecho en
> el motor de objetos para dar soporte a los .hrb.
>
> Si puedes, por favor, prueba FW con nuestra versión de xHarbour y salimos
> de dudas.
>
>
> --
> Un saludo,
>
> José F. Giménez
>
>
Jorge Mason
Mensajes: 25
Registrado: Mar Oct 05, 2004 1:39 pm

Se pierde memoria con xHarbour

Mensaje por Jorge Mason »

Jose,
Con xHarbour puro se pierde memoria,
Seguramente Xailer procesa para su beneficio algun recuperador de memoria,
que puede ser un simple inkey() o el recolector de memoria hb_gcAll()
Entonces con Xailer no es posible ver este problema.
Ya puse un ejemplo con puro xharbour y falla realmente !, la memoeira crece
hasta colapsar el PC y se tranca todo !
Saludos
Jorge
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:[email=4332f508@ozsrvnegro.ozlan.local...]4332f508@ozsrvnegro.ozlan.local...[/email]
> Jorge,
>
> gracias por la información.
>
> Acabo de adaptar tu ejemplo a Xailer (aquí lo tienes por si quieres
> probarlo tú mismo); sólo he hecho dos cambios: he cambiado es el periodo
> del timer a 100ms para que vaya más rápido y he puesto que cambie el
> caption de la ventana cada vez que se dispara el timer, para saber por
> dónde va.
>
> En mis pruebas no se pierde memoria. Por favor, pruebalo tú también.
>
> Una cosa que sí quiero aclarar es que la versión de xHarbour que estoy
> usando, que es la misma que tenemos publicada en nuestra web, corresponde
> exactamente a como estaba el CVS el día 31-7-2005.
>
> Y respecto al motor de objetos, nosotros tenemos implementada una
> ampliación, que da soporte a propiedades y eventos, pero el motor sigue
> siendo el mismo. Y esta versión contiene los cambios que hizo Walter hace
> unos meses. Lo que no incluye es los últimos cambios que se han hecho en
> el motor de objetos para dar soporte a los .hrb.
>
> Si puedes, por favor, prueba FW con nuestra versión de xHarbour y salimos
> de dudas.
>
>
> --
> Un saludo,
>
> José F. Giménez
>
>
Jorge Mason
Mensajes: 25
Registrado: Mar Oct 05, 2004 1:39 pm

Se pierde memoria con xHarbour

Mensaje por Jorge Mason »

Josè,
Al parecer ya está arreglado, según indicó Ron Pinkas, he bajado el último
CVS y realmente ahora no se pierde memoria.
Saludos y gracias a todos
Jorge Mason
www.htcsoft.cl
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:[email=4332f508@ozsrvnegro.ozlan.local...]4332f508@ozsrvnegro.ozlan.local...[/email]
> Jorge,
>
> gracias por la información.
>
> Acabo de adaptar tu ejemplo a Xailer (aquí lo tienes por si quieres
> probarlo tú mismo); sólo he hecho dos cambios: he cambiado es el periodo
> del timer a 100ms para que vaya más rápido y he puesto que cambie el
> caption de la ventana cada vez que se dispara el timer, para saber por
> dónde va.
>
> En mis pruebas no se pierde memoria. Por favor, pruebalo tú también.
>
> Una cosa que sí quiero aclarar es que la versión de xHarbour que estoy
> usando, que es la misma que tenemos publicada en nuestra web, corresponde
> exactamente a como estaba el CVS el día 31-7-2005.
>
> Y respecto al motor de objetos, nosotros tenemos implementada una
> ampliación, que da soporte a propiedades y eventos, pero el motor sigue
> siendo el mismo. Y esta versión contiene los cambios que hizo Walter hace
> unos meses. Lo que no incluye es los últimos cambios que se han hecho en
> el motor de objetos para dar soporte a los .hrb.
>
> Si puedes, por favor, prueba FW con nuestra versión de xHarbour y salimos
> de dudas.
>
>
> --
> Un saludo,
>
> José F. Giménez
>
>
Responder