I think the right thing to do here is make all module-level globals
into "cdef public" attributes, i.e. C globals with getters and setters
for Python space. I'm not sure whether this would best be done by
creating a custom dict or module subclass, but it would probably be
cleaner and afford much more than a 1.6x speedup.

- Robert

On Wed, Jan 18, 2012 at 12:30 PM, Vitja Makarov <vitja.maka...@gmail.com> wrote:
> I tried to optimize module lookups (__pyx_m) by caching internal PyDict state.
>
> In this example bar() is 1.6 time faster (500us against 842us):
>
> C = 123
> def foo(a):
>     return C * adef bar():
>     for i in range(10000):        foo(i)
> Here is proof of
> concept:https://github.com/vitek/cython/commit/1d134fe54a74e6fc6d39d09973db499680b2a8d9
>
> So the question is: does it worth it?
>
> --
> vitja.
> _______________________________________________
> cython-devel mailing list
> cython-devel@python.org
> http://mail.python.org/mailman/listinfo/cython-devel
_______________________________________________
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel

Reply via email to