Page 1 of 1

Consumo de Memoria

Posted: Fri Jan 23, 2009 5:00 pm
by Mike Serra
Buenas Tardes Foro, una consultilla :)

Tengo una aplicación en un punto de información que está constantemente ejecutandose. La pantalla principal es un dialogo asociado a una ventana que está esperando a que pasen una tarjeta para que el sistema la valide. En función de la validación muestro un msgwait con la información correspondiente. La aplicación está terminada, ahora la estoy depurando, y me encuentro con un problema y es que cada vez que se ejecuta un msgwait, desde el administrador de tareas veo que el consumo de la aplicación crecía. Para buscarle una solución temporal, me he creado esta función que hace de msgwait, pero con fonts y un poco más grande el diálogo:

Code: Select all

function BigMsg(Linea1,Linea2,Linea3,nSeconds,cTitulo)
	local odlg, oSay1,oSay2,oSay3,ofont,i
	default linea1:=""
	default linea2:=""
	default linea3:=""
	default nSeconds:=5
	default cTitulo := oConfiguracion:Titulo_Aplicacion
	define font ofont name "Tahoma" size 0,35
	define dialog odlg resource "BIGMSG" colors CLR_BLUE, RGB( 231,242,255 ) title cTitulo
		redefine say oSay1 var Linea1 id 101 of odlg font ofont
		redefine say oSay2 var Linea2 id 102 of odlg font ofont
		redefine say oSay3 var Linea3 id 103 of odlg font ofont
		oSay1:ltransparent:=.t.
		oSay2:ltransparent:=.t.
		oSay3:ltransparent:=.t.
	activate dialog odlg center nowait
	for i = 1 to 2595000*nSeconds
	next i 
	odlg:end()
	oFont:end()
	hb_gcAll()
return
Viendo que el problema no se solucionaba, le añadí la ultima línea que véis

Code: Select all

hb_gcAll()
El problema sigue, y lo que me preocupa es que al ser una aplicación que está constantemente ejecutandose, llegará un momento, en que se pueda colapsar la memoria.

¿Sabéis como puedo solicionar el problema?

Muchas Gracias a todos de antemano.

Re: Consumo de Memoria

Posted: Fri Jan 23, 2009 6:32 pm
by Antonio Linares
Mike,

Prueba a hacer esta llamada despues de:

oFont:end()
MsgInfo( oFont:hFont )

deberia mostrarte cero

Re: Consumo de Memoria

Posted: Fri Jan 23, 2009 9:45 pm
by Mike Serra
Buenas noches Antonio, lo he probado, y es correcto, me muestra 0,

Muchas Gracias

Re: Consumo de Memoria

Posted: Fri Jan 23, 2009 11:06 pm
by Antonio Linares
Mike,

Que proceso estas haciendo cuando llamas a BigMsg() ?

Usas DBFs, arrays, etc ? Intenta dar todos los detalles que puedas, gracias

Re: Consumo de Memoria

Posted: Sat Jan 24, 2009 8:51 pm
by sygecom
Tentou com:
hb_gcAll(.t.)

Re: Consumo de Memoria

Posted: Mon Jan 26, 2009 7:03 am
by Carles
Hola,

Prueba

Code: Select all

for i = 1 to 2595000*nSeconds
   SysRefresh()
next i 
Siau.