Diego:

yo tengo las mismas estadísticas pero lo que no viene de la BD es más
complicado o queda más a la vista.
(5000 / 24.0) used o #unique o lo que sea, es un bajón. Cuando viene
de la BD te queda escondido en el mapeo que si es relativamente
automático no tenes que volverlo a tocar.

Subclasificar Float? no se haria una mescolanza terrible?

Para eso uso ScaledDecimal (despues vemos como anda :)
El tema es la performance también, por eso me gusta el Float.

Saludos


El día 3 de mayo de 2012 14:43, [email protected]
<[email protected]> escribió:
> Tal vez me estoy yendo de tema, pero en un sistema que hice para
> procesar muchos datos terminé aplicando flyweights a cosas que no
> esperaba, como numeros, fechas o nombres. Por ejemplo, si tengo una
> colección con 1 millon de "Facturas del mes", entonces la cantidad de
> fechas posibles son 30 y no 1 millón. Y está claro que tener 30 fechas
> es mas barato en términos de memoria y de muchas operaciones (y a
> veces mas caro de instanciar al principio). Viniendo de un pasado de
> bases de datos relacionales, siempre tendía a "factorizar" lo obvio,
> cosas como Ciudad, Cliente, Género, Tipo, etc.. Pero nunca pensé que
> el importe de una factura , la fecha o un "campo string" debían
> factorizarse. Pero en Smalltalk resulta muy natural hacerlo y darse
> cuenta que tampoco suelen existir 1 millón de importes distintos, ni
> un millón de nombres distintos, de hecho los nombres de personas son
> muy pocos. Además en ese tipo de colecciones, los objetos suelen tener
> mas de una fecha y mas de un variable de instancia de tipos numéricos,
> por lo que la misma instancia suele vivir en varias partes del objeto.
> Si me tocara analizar a la población de Argentina, la fechas de
> nacimiento REALES no serían 40 millones, serían unas 40 mil, o sea mil
> veces menos objetos. Algo que a veces pasa es que cuando se encuentran
> muchas repeticiones el tiempo de instanciación de las colecciones
> también baja mucho porque a la VM le cuesta menos hacer búsquedas que
> reservar tanta memoria.
> Para tranformar un objeto en otro que esté siendo usado previamente
> les mando el mensaje #used, que obviamente me devuelve el objeto del
> pool para su reemplazo. Todo esto tiene muy bajo costo en términos de
> diseño y empiezan a aparecer beneficios por donde uno menos lo espera.
> En mi caso, a clave fue sacarme las reglas de factorización de la
> cabeza y prestarle mas atención al inspector de Smalltalk.
>
> Diego Coronel
>
>
>
> On 3 mayo, 14:16, Angel Java Lopez <[email protected]> wrote:
>> Interesante tema/problema..
>>
>> Por que hay millones de float? Yo me imagino algun calculo, pero igual
>> luego el garbage collector deberia liberarlos. El problema es la memoria?
>> se acaba? Se necesitan los millones de floats, digo, que esten
>> referenciados y no sean liberados por el GC? no habra forma de cambiar el
>> algoritmo? O el problema es el tiempo (mucho tiempo creando) y no la
>> memoria?
>>
>> 2012/5/3 [email protected] <[email protected]>
>>
>>
>>
>> > Hola GallegO,
>> > Supongo que habrás hecho un flyweight y es lo que generalmente me
>> > sirvió. Tal vez si contarás un poco mas surjan mas ideas, en las cosas
>> > que me topé terminé por darme cuenta que los números son muchísimos
>> > menos que los que parecen, en matemática son infinitos pero en la
>> > compu no, y en la realidad mucho menos.
>>
>> > Abrazo
>>
>> > Diego
>>
>> > On 3 mayo, 13:04, GallegO <[email protected]> wrote:
>> > > Gente:
>>
>> > > Quería saber si alguien se le ocurre de que forma uno puede evitar la
>> > > instanciación de Float en Dolphin, o si se les ocurren en cualquier
>> > > Smalltalk en forma transparente. Tengo un problemita con algunos
>> > > millones de floats. En algunos lados lo puedo solucionar con un
>> > > lightweight pero cuando se usan primitivas en un calculo estoy al
>> > > horno.
>>
>> > > Gracias por su ayuda :)
>>
>> > > Saludos
>> > >   GallegO
>>
>> > --
>> > To post to this group, send email to [email protected]
>> > To unsubscribe from this group, send email to
>> > [email protected]
>>
>> >http://www.clubSmalltalk.org
>
> --
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to 
> [email protected]
>
> http://www.clubSmalltalk.org

-- 
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]

http://www.clubSmalltalk.org

Responder a