[Python-Dev] memcmp performance (original) (raw)

Antoine Pitrou solipsis at pitrou.net
Fri Oct 21 18:01:45 CEST 2011


On Fri, 21 Oct 2011 08:24:44 +0200 Stefan Behnel <stefan_ml at behnel.de> wrote:

Antoine Pitrou, 20.10.2011 23:08: >> I have been doing some performance experiments with memcmp, and I was >> surprised that memcmp wasn't faster than it was in Python. I did a whole, >> long analysis and came up with some very simple results. > > Thanks for the analysis. Non-bugfix work now happens on Python 3, where > the str type is Python 2's unicode type. Your recommendations would > have to be revisited under that light.

Well, Py3 is quite a bit different now that PEP393 is in. It appears to use memcmp() or strcmp() a lot less than before, but I think unicodecompare() should actually receive an optimisation to use a fast memcmp() if both string kinds are equal, at least when their character unit size is less than 4 (i.e. especially for ASCII strings). Funny enough, tailmatch() has such an optimisation.

Yes, unicode_compare() probably deserves optimizing. Patches welcome, by the way :)

Regards

Antoine.



More information about the Python-Dev mailing list