Robert Kern wrote:
> Yes, we know that. The concern I was addressing was the time overhead
> for creating the new dict object every time an ndarray gets
> instantiated. Most of these dict objects would be unused, so we would
> be wasting a substantial amount of time. If you push off the creation
> of the dict to the first time the user accesses it, then we're not
> wasting any time. We do realize that space for the pointer must still
> be reserved.

I'm sorry for pointing to the obvious.

I *guess* it's possible to delay the creation even further. You don't 
have to create a dict until somebody assigns a new attribute to an 
instance. It'd require some more code and you'd have to trade memory 
efficiency for slightly slower access to the additional attributes.

Please also note that CPython uses a freelist of unused dict instances. 
The default size of the dict free list is 80 elements. The allocation 
and deallocation of dicts is cheap if you can stay below the threshold.

Christian

_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to