[Python-Dev] speeding up PyObject_GetItem

Daniel Stutzbach daniel at stutzbachenterprises.com
Tue Mar 24 16:50:57 CET 2009


On Tue, Mar 24, 2009 at 10:13 AM, Mark Dickinson <dickinsm at gmail.com> wrote:

> 2009/3/24 Daniel Stutzbach <daniel at stutzbachenterprises.com>:
> > [...]
> > 100 nanoseconds, py3k trunk:
> > ceval -> PyObject_GetItem (object.c) -> list_subscript (listobject.c) ->
> > PyNumber_AsSsize_t (object.c) -> PyLong_AsSsize_t (longobject.c)
> > [more timings snipped]
>
> Does removing the PyLong_Check call in PyLong_AsSsize_t
> make any noticeable difference to these timings?
>

Making no other changes from the trunk, removing the PyLong_Check and NULL
check from PyLong_AsSsize_t shaves off 4 nanoseconds (or around 4% since the
trunk is around 100 nanoseconds).

Here's what I'm testing with, by the way:

./python.exe Lib/timeit.py -r 10 -s 'x = list(range(10))' 'x[5]'

--
Daniel Stutzbach, Ph.D.
President, Stutzbach Enterprises, LLC <http://stutzbachenterprises.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20090324/d24871af/attachment.htm>


More information about the Python-Dev mailing list