[Cython] Storing many, many instances
Robert Bradshaw
robertwb at math.washington.edu
Wed May 6 21:24:13 CEST 2009
On May 6, 2009, at 11:18 AM, Carl Witty wrote:
> On Wed, May 6, 2009 at 10:38 AM, Robert Bradshaw
> <robertwb at math.washington.edu> wrote:
>> I already implemented this optimization, though only for cdef classes
>> within the same module. (If they're small enough, they may get even
>> inlined by the C compiler.) I'm not sure how possible this would be
>> to do across modules, but one difficulty is that the contents of
>> tp_new can change based on the .pyx file, not just the .pxd file.
>
> Really? What in the .pyx file can change tp_new? (I'm mostly just
> curious.)
The __cinit__ (aka __new__) function, if any, get's invoked.
> Across modules, you should at least be able to call the tp_new
> function directly instead of going through the vtable. (I assume from
> the .pxd file you can at least determine the mangled name of the
> base's tp_new function?)
This is the optimization I was referring too--look at the generated
sources for, e.g., sage.structure.element.pyx
- Robert
More information about the Cython-dev
mailing list