Speed: bytecode vz C API calls

Jacek Generowicz jacek.generowicz at cern.ch
Mon Dec 8 15:45:42 CET 2003


Jacek Generowicz <jacek.generowicz at cern.ch> writes:

> I was expecting C-extensions which make lots of calls to Python C API
> functions, not to be spectacularly fast, but I'm still a little
> disapponited with what I've got. Does this sort of speedup (or rather,
> lack of it) seem right, to those of you experienced with this sort of
> thing? or does it look like I'm doing it wrong?

> static int
> memoize_init(memoizeObject* self, PyObject* args, PyObject* kwds) {
>   PyArg_ParseTuple(args, "O", &(self->fn));

Obvious bug:                    &(self->cache)   !!

>   Py_INCREF(self->fn);
>   self->cache = PyDict_New();
>   return 0;
> }

Fixing the bug gives me a factor of 3 speedup over the class-based
version.

That's a bit more like what I was expecting.




More information about the Python-list mailing list