On Feb 1, 5:22 pm, David Nolen <dnolen.li...@gmail.com> wrote: > I've changed the name of my project since that was a joke > anyway.http://github.com/swannodette/spinoza/tree/master > > Spinoza isn't just for people who want object oriented behaviors. It's also > for anyone who plans on instantiating many structs. Spinoza's make-instance > macro automatically orders your key/values and uses struct not struct-map. > > (defclass shape [object] > (:position [0 0])) > > (defclass rect [shape] > (:position [5 5]) > :width > :height) > > (time (dotimes [x 1000000] > (make-instance rect :height 100 :width 150))) > > > ~280ms > > (defstruct rect-struct :tag :position :width :height) > (time (dotimes [x 1000000] > (struct-map rect-struct :tag ::rect :position [50 50] :width 100 :height > 190))) > > > ~800ms > > Also, it is now available under an MIT license, feel free to fork, send > patches at will etc.
Does Spinoza do anything to optimize the size of the object? I'm tinkering with a project that will have several million objects in it. Currently I'm using struct-maps with around 7 keys, and the overhead appears to be around 200 bytes per map - I'd like it to be around 32 bytes ideally. I'm planning on eventually using Java objects to shrink the size, but it would be nice if there were a Clojure library I could use. Cheers, Brad --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---