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+.