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.

Problemas de consumo de memoria

Foro público de Xailer en español
Responder
jasm.quitaesto
Mensajes: 420
Registrado: Sab Ago 16, 2008 9:06 pm

Problemas de consumo de memoria

Mensaje por jasm.quitaesto »

Hola
Estoy teniendo problemas con cosumo de memoria al refrescar un
arraybrowse con un timer.
He intentado forzar el recolector de basuras con HB_GCALL(.T.), pero no
consigo nada.
He comprobado que al refrescar el dataset no hay aumentos de memoria,
pero despues de recargar el arraybrowse, sí­. Al ser una carga masiva,
primero limpio el contenido del arraybrowse con ZAP()y despues uso AAdd(
::oArrayBrowse:aArrayData, {{datos}} ) para cargar el array. No puedo
usar otro sistema de carga del browse al tratarse de calculos complicados.
Saludos
Alf+.
Manu
Mensajes: 108
Registrado: Dom Sep 24, 2006 2:28 pm

Problemas de consumo de memoria

Mensaje por Manu »

Tal vez si despues de hacer el zap iguales el array a nil y luego llames
al recolector pitule...
Ademas create un array y luego se lo asignas al arraybrowse.
Ah si conoces el numero de elementos te sugiero que creees el array
vacio y luego asignes sus valores:
a := Array( n )
....
a[ n ] := xvalor
A buen entendedor sobran palabras
:-)
El 23/04/2010 12:01, José Alfonso Suárez Moreno escribió:
> Hola
>
> Estoy teniendo problemas con cosumo de memoria al refrescar un
> arraybrowse con un timer.
>
> He intentado forzar el recolector de basuras con HB_GCALL(.T.), pero no
> consigo nada.
>
> He comprobado que al refrescar el dataset no hay aumentos de memoria,
> pero despues de recargar el arraybrowse, sí­. Al ser una carga masiva,
> primero limpio el contenido del arraybrowse con ZAP()y despues uso AAdd(
> ::oArrayBrowse:aArrayData, {{datos}} ) para cargar el array. No puedo
> usar otro sistema de carga del browse al tratarse de calculos complicados.
>
> Saludos
>
> Alf+.
jasm.quitaesto
Mensajes: 420
Registrado: Sab Ago 16, 2008 9:06 pm

Problemas de consumo de memoria

Mensaje por jasm.quitaesto »

Manu,
Gracias.
Ya he probado esas cosas. No consigo controlar el consumo de memoria.
Saludos
Jose A. Suarez
El 24/04/2010 12:31, Manu escribió:
> Tal vez si despues de hacer el zap iguales el array a nil y luego llames
> al recolector pitule...
> Ademas create un array y luego se lo asignas al arraybrowse.
>
> Ah si conoces el numero de elementos te sugiero que creees el array
> vacio y luego asignes sus valores:
>
> a := Array( n )
>
> ...
>
> a[ n ] := xvalor
>
> A buen entendedor sobran palabras
>
> :-)
>
>
>
> El 23/04/2010 12:01, José Alfonso Suárez Moreno escribió:
>> Hola
>>
>> Estoy teniendo problemas con cosumo de memoria al refrescar un
>> arraybrowse con un timer.
>>
>> He intentado forzar el recolector de basuras con HB_GCALL(.T.), pero no
>> consigo nada.
>>
>> He comprobado que al refrescar el dataset no hay aumentos de memoria,
>> pero despues de recargar el arraybrowse, sí­. Al ser una carga masiva,
>> primero limpio el contenido del arraybrowse con ZAP()y despues uso AAdd(
>> ::oArrayBrowse:aArrayData, {{datos}} ) para cargar el array. No puedo
>> usar otro sistema de carga del browse al tratarse de calculos
>> complicados.
>>
>> Saludos
>>
>> Alf+.
>
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Problemas de consumo de memoria

Mensaje por Bingen Ugaldebere »

Nosotros no hacemos exactamente lo mismo pero si algo parecido,
alimentamos un array con los datos y cálculos necesarios y luego a un
memdataset asociado a un browse le hacemos un :Open(aArray,{nombres de
campos})
Luego cada vez que queremos cambiar sus datos hacemos al memdataset un
:lOpen:=.F. y volvemos a cargar el aArray y volvemos a hacer el
:Open(aArray,{nombres de campos})
A ver si te vale.
Salu2.
El 23/04/2010 12:01, José Alfonso Suárez Moreno escribió:
> Hola
>
> Estoy teniendo problemas con cosumo de memoria al refrescar un
> arraybrowse con un timer.
>
> He intentado forzar el recolector de basuras con HB_GCALL(.T.), pero no
> consigo nada.
>
> He comprobado que al refrescar el dataset no hay aumentos de memoria,
> pero despues de recargar el arraybrowse, sí­. Al ser una carga masiva,
> primero limpio el contenido del arraybrowse con ZAP()y despues uso AAdd(
> ::oArrayBrowse:aArrayData, {{datos}} ) para cargar el array. No puedo
> usar otro sistema de carga del browse al tratarse de calculos complicados.
>
> Saludos
>
> Alf+.
jasm.quitaesto
Mensajes: 420
Registrado: Sab Ago 16, 2008 9:06 pm

Problemas de consumo de memoria

Mensaje por jasm.quitaesto »

Bingen,
Gracias por la ayuda. Lo veo interesante y lo voy a probar.
Un abrazo.
Alf+.
El 26/04/2010 15:32, Bingen Ugaldebere escribió:
> Nosotros no hacemos exactamente lo mismo pero si algo parecido,
> alimentamos un array con los datos y cálculos necesarios y luego a un
> memdataset asociado a un browse le hacemos un :Open(aArray,{nombres de
> campos})
>
> Luego cada vez que queremos cambiar sus datos hacemos al memdataset un
> :lOpen:=.F. y volvemos a cargar el aArray y volvemos a hacer el
> :Open(aArray,{nombres de campos})
>
>
> A ver si te vale.
>
> Salu2.
>
>
>
> El 23/04/2010 12:01, José Alfonso Suárez Moreno escribió:
>> Hola
>>
>> Estoy teniendo problemas con cosumo de memoria al refrescar un
>> arraybrowse con un timer.
>>
>> He intentado forzar el recolector de basuras con HB_GCALL(.T.), pero no
>> consigo nada.
>>
>> He comprobado que al refrescar el dataset no hay aumentos de memoria,
>> pero despues de recargar el arraybrowse, sí­. Al ser una carga masiva,
>> primero limpio el contenido del arraybrowse con ZAP()y despues uso AAdd(
>> ::oArrayBrowse:aArrayData, {{datos}} ) para cargar el array. No puedo
>> usar otro sistema de carga del browse al tratarse de calculos
>> complicados.
>>
>> Saludos
>>
>> Alf+.
Responder