Raymond Hettinger <rhettin...@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 <rep...@bugs.python.org> <http://bugs.python.org/issue5730> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com