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