Página 1 de 1

Problemas de consumo de memoria

Publicado: Vie Abr 23, 2010 12:01 pm
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+.

Problemas de consumo de memoria

Publicado: Sab Abr 24, 2010 12:31 pm
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+.

Problemas de consumo de memoria

Publicado: Sab Abr 24, 2010 7:38 pm
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+.
>

Problemas de consumo de memoria

Publicado: Lun Abr 26, 2010 3:32 pm
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+.

Problemas de consumo de memoria

Publicado: Lun Abr 26, 2010 11:46 pm
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+.