[issue5730] setdefault speedup

Raymond Hettinger report at bugs.python.org
Thu Apr 9 23:23:19 CEST 2009


Raymond Hettinger <rhettinger at users.sourceforge.net> added the comment:

Inlining code saves work but breaks the effort to minimize the number of
functions that have direct access to the underlying data structure.

The performance of setdefault() is hard to improve in real apps because
the cost of instantiating the default object is outside of the method. 
Also, the method often gets used in a loop where the first call adds an
entry and subsequent calls just do a get; so, any efforts to optimize
the second look-up only help on the first call and are completely wasted
on subsequent calls.

All that being said, there's no reason we can't save the double call to
PyObject_Hash().  See attached patch.

Martin, any thoughts?

----------
assignee: rhettinger -> loewis
nosy: +loewis
priority:  -> low
Added file: http://bugs.python.org/file13667/setdefault.diff

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue5730>
_______________________________________


More information about the Python-bugs-list mailing list