diff options
| author | Raymond Hettinger <python@rcn.com> | 2005-02-20 04:07:08 (GMT) |
|---|---|---|
| committer | Raymond Hettinger <python@rcn.com> | 2005-02-20 04:07:08 (GMT) |
| commit | 7cbf1bcb3e55c61617352ec1b20176603dacbafe (patch) | |
| tree | fa39e30071d423e8c3de3574de4ac11f5998887d /Lib/subprocess.py | |
| parent | 54c273c703957e37100900b3e8a25f94c4c17003 (diff) | |
| download | cpython-7cbf1bcb3e55c61617352ec1b20176603dacbafe.zip cpython-7cbf1bcb3e55c61617352ec1b20176603dacbafe.tar.gz cpython-7cbf1bcb3e55c61617352ec1b20176603dacbafe.tar.bz2 | |
* Beef-up testing of str.__contains__() and str.find().
* Speed-up "x in y" where x has more than one character.
The existing code made excessive calls to the expensive memcmp() function.
The new code uses memchr() to rapidly find a start point for memcmp().
In addition to knowing that the first character is a match, the new code
also checks that the last character is a match. This significantly reduces
the incidence of false starts (saving memcmp() calls and making quadratic
behavior less likely).
Improves the timings on:
python -m timeit -r7 -s"x='a'*1000" "'ab' in x"
python -m timeit -r7 -s"x='a'*1000" "'bc' in x"
Once this code has proven itself, then string_find_internal() should refer
to it rather than running its own version. Also, something similar may
apply to unicode objects.
Diffstat (limited to 'Lib/subprocess.py')
0 files changed, 0 insertions, 0 deletions
