On 2012-10-19 02:03, Victor Stinner wrote:
Hi,

I would like to know if there a reason for not using the hash of
(bytes or unicode) strings when comparing two objects and the hash of
the two objects was already been computed. Using the hash would speed
up comparaison of long strings when the two strings are different.

Something like:

     if ((op == Py_EQ || op == Py_NE)
         && a->ob_shash != -1
         && b->ob_shash != -1
         && a->ob_shash != b->ob_shash) {
         /* strings are not equal */
     }

There are hash collision, so a->ob_shash == b->ob_shash doesn't mean
that the two strings are equal. But if the two hashs are different,
the two strings are different. Isn't it?

Correct. It's true for any hashable type.
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to