[Python-3000] Where is PyUnicodeObject->hash supposed to be set? (original) (raw)
Guido van Rossum guido at python.org
Fri Sep 7 23:20:30 CEST 2007
- Previous message: [Python-3000] Where is PyUnicodeObject->hash supposed to be set?
- Next message: [Python-3000] Performance Notes - new hash algorithm
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Can you post the full call graph after this fix (thanks Neil S!) somewhere, or attach it to an email here?
--Guido
On 9/7/07, Nicholas Bastin <nick.bastin at gmail.com> wrote:
On 9/7/07, Guido van Rossum <guido at python.org> wrote: > It should be set in unicodehash(). If you compare the trunk version > of that function with the py3k branch version, you see that it's been > refactored, and in the refactoring, setting ->hash was omitted. It > should be trivial to put it back.
Putting it back nets an average 1.8% performance gain for pystone, but probably there were other cases that were extremely bad given this behaviour. We're still left with another 5 million 'extra' calls to PyDictGetItem in 3.0 over 2.6 in a 100000 cycle pystone run, so I'll look around into those, but I suspect none of them will generate any larger performance gain. Someone with more experience than I in the 3.0 development cycle will be able to determine what macro-level optimizations / refactoring make sense, and what design decisions we're just going to have to pay for. At the moment (and probably for the forseeable moments), I'm focusing on small improvements across the codebase. -- Nick
Python-3000 mailing list Python-3000 at python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/guido%40python.org
-- --Guido van Rossum (home page: http://www.python.org/~guido/)
- Previous message: [Python-3000] Where is PyUnicodeObject->hash supposed to be set?
- Next message: [Python-3000] Performance Notes - new hash algorithm
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]