Liberar memoria eVB

17/11/2003 - 11:47 por osloji | Informe spam
Hola

tengo un programa en eVB que debería correr siempre que mi PocketPC
esté encendida. Me he dado cuenta de que la memoria se va agotando
poco a poco, más o menos en dos días funcionando ininterrumpidamente
se ocupan unos 20 MB.
Si cierro la aplicación la memoria se libera, pero me gustaría que
pudiera funcionar siempre en segundo plana y no tener que cerrarla.

He buscado información pero solo he visto referencias al consumo de
memoria con conexiones a bases de datos (la famosa instruicción
Set=Nothing, que no libera memo). En mi aplicación no se utiliza
ninguna base de datos. Lo que hace es recibir y transmitir datos por
un socket y dejarlo en ficheros de texto.
Tengo varios objetos File sobre los que leo o escribo. No se crean
nuevos objetos sino quel eo y escribo siempre sobre los mismos
objetos.

No sé qué puede estar consumiendo memoria sin liberarla. Se me ocurren
como fuentes de error la lectura y escritura en ficheros, o la
transmisión o recepción de datos por sockets.
También he visto que hay un bug en el eVB cuando captura eventos,
(Artículo de Microsoft Knowledge Base - 299007) pero no estoy seguro
de que sea eso. Estoy usando eVB 3.0 y según dice en el artículo el
fix no me sirve ¿? Voy un poco perdido con esto.


¿A alguien le ha pasado? ¿Alguna sugerencia?

Salu2

Óscar
 

Leer las respuestas

#1 ivan
20/11/2003 - 16:52 | Informe spam
Hola Oscar,

eVB tiene un fallo al liberar recursos creados con CreateObject(). Esto
se nota mucho, por ejemplo, cuando se usan recordsets, ya que no se
libera la memoria.

Para esto yo utilizo una dll de Odyssey Software [
http://www.odysseysoftware.com ](OSIUtil.dll) que soluciona este problema.

Para mas informacion:

http://www.odysseysoftware.com/docu...Object.pdf

OSIUtil.dll:

http://www.odysseysoftware.com/down...til141.exe

Espero que te sirva



Oscar wrote:
Hola

tengo un programa en eVB que debería correr siempre que mi PocketPC
esté encendida. Me he dado cuenta de que la memoria se va agotando
poco a poco, más o menos en dos días funcionando ininterrumpidamente
se ocupan unos 20 MB.
Si cierro la aplicación la memoria se libera, pero me gustaría que
pudiera funcionar siempre en segundo plana y no tener que cerrarla.

He buscado información pero solo he visto referencias al consumo de
memoria con conexiones a bases de datos (la famosa instruicción
Set=Nothing, que no libera memo). En mi aplicación no se utiliza
ninguna base de datos. Lo que hace es recibir y transmitir datos por
un socket y dejarlo en ficheros de texto.
Tengo varios objetos File sobre los que leo o escribo. No se crean
nuevos objetos sino quel eo y escribo siempre sobre los mismos
objetos.

No sé qué puede estar consumiendo memoria sin liberarla. Se me ocurren
como fuentes de error la lectura y escritura en ficheros, o la
transmisión o recepción de datos por sockets.
También he visto que hay un bug en el eVB cuando captura eventos,
(Artículo de Microsoft Knowledge Base - 299007) pero no estoy seguro
de que sea eso. Estoy usando eVB 3.0 y según dice en el artículo el
fix no me sirve ¿? Voy un poco perdido con esto.


¿A alguien le ha pasado? ¿Alguna sugerencia?

Salu2

Óscar

Preguntas similares