Hola gente!

Bien, fui entendiendo... Pero lo que no me quedo claro es:

- Cual es el problema de tener 3 millones de instancias de float?

Digo, en que se nota?

1 - En performance?
2 - O da en algun momento: falta memoria?

Si es el primer caso, es por el tiempo de creacion de los objetos? Como se
midio que era por eso?

2012/5/3 GallegO <[email protected]>

> Hola:
>
> Les respondo aclarando la situación.
>
> Ya implemente un flyweight para cuando traigo floats de la base de
> datos. Luego de observar los resultados llegue a la conclusión que por
> perfomance, en mi caso particular, no valía la pena el flyweight (que
> lo habia implementado con un WeakSet). La mayoría de mis valores eran
> 0.0, entonces simplemente evito el 0.0, cuando viene un 0.0
> instanciado por el driver, en el lugar donde se mapea eso a los
> objetos directamente si viene 0.0 lo descarto y al objeto le pongo el
> SmallInteger 0, simple y rápido. Si se pone peludo algun día tenes la
> posibilidad de hacer eso e incluso hacerlo para Date, Time, TimeStamp
> e incluso String.
>
> Pero el problema que tengo es en unos objetos que calculamos en
> memoria para un periodo x de tiempo. Por ejemplo calcular la
> producción de 30 dias de 5000 pozos, suponiendo que cada producción
> tiene 20 valores numericos que mantiene en variables de instancia, eso
> te da unos 3 millones de instancias de Float.
>
> Ahora, entiendo perfectamente que podemos trabajar ahí también para
> evitar tener todo eso calculado, o evitar tener al menos tantos Float
> 0.0 pero por como están programados todos los cálculos se hace muy
> complicado (y feo) manejar esto en todos lados. De ultima que cada
> seter de las variables de instancias pongo codigo que maneje un
> flyweight o el Float zero al menos, pero es algo feo feo.
>
> Por eso pregunto por algo "transparente" como seria poder modificar la
> VM o las primitivas al menos, que en mi caso por ser Dolphin no puedo.
>
> Recién veo el mail de Juan Vuletich, en Dolphin tengo FloatArray
> tambien. Calculo que en vez de variables de instancia podría tener un
> array de estos en mis objetos y los accessors que apunten a cada una
> de las posiciones del array. No se si te referis a que es posible ese
> uso. Ja! no me imagino lo que tendría que testear...
>
> De todas maneras tener en Smalltalk reflexividad sobre la
> instanciacion como los Symbol estaría buenísimo.
>
> Bueno, viendo esta perspectiva ¿que me sugieren? :D
>
> Saludos
>  GallegO
>
> El día 3 de mayo de 2012 14:16, Angel Java Lopez
> <[email protected]> escribió:
> > 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
>

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