mirror of
https://github.com/python/cpython.git
synced 2024-12-01 11:15:56 +01:00
486364b821
svn+ssh://pythondev@svn.python.org/python/branches/p3yk ................ r56037 | georg.brandl | 2007-06-19 05:33:20 -0700 (Tue, 19 Jun 2007) | 2 lines Patch #1739659: don't slice dict.keys() in pydoc. ................ r56060 | martin.v.loewis | 2007-06-21 13:00:02 -0700 (Thu, 21 Jun 2007) | 2 lines Regenerate to add True, False, None. ................ r56069 | neal.norwitz | 2007-06-21 22:31:56 -0700 (Thu, 21 Jun 2007) | 1 line Get the doctest working again after adding None, True, and False as kewyords. ................ r56070 | neal.norwitz | 2007-06-21 23:25:33 -0700 (Thu, 21 Jun 2007) | 1 line Add space to error message. ................ r56071 | neal.norwitz | 2007-06-21 23:40:04 -0700 (Thu, 21 Jun 2007) | 6 lines Get pybench working, primarily * Use print function * Stop using string module * Use sorted instead of assuming dict methods return lists * Convert range result to a list ................ r56089 | collin.winter | 2007-06-26 10:31:48 -0700 (Tue, 26 Jun 2007) | 1 line Fix AttributeError in distutils/dir_util.py. ................ r56124 | guido.van.rossum | 2007-06-29 18:04:31 -0700 (Fri, 29 Jun 2007) | 30 lines Merged revisions 56014-56123 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r56019 | lars.gustaebel | 2007-06-18 04:42:11 -0700 (Mon, 18 Jun 2007) | 2 lines Added exclude keyword argument to the TarFile.add() method. ........ r56023 | lars.gustaebel | 2007-06-18 13:05:55 -0700 (Mon, 18 Jun 2007) | 3 lines Added missing \versionchanged tag for the new exclude parameter. ........ r56038 | georg.brandl | 2007-06-19 05:36:00 -0700 (Tue, 19 Jun 2007) | 2 lines Bug #1737864: allow empty message in logging format routines. ........ r56040 | georg.brandl | 2007-06-19 05:38:20 -0700 (Tue, 19 Jun 2007) | 2 lines Bug #1739115: make shutil.rmtree docs clear wrt. file deletion. ........ r56084 | georg.brandl | 2007-06-25 08:21:23 -0700 (Mon, 25 Jun 2007) | 2 lines Bug #1742901: document None behavior of shlex.split. ........ r56091 | georg.brandl | 2007-06-27 07:09:56 -0700 (Wed, 27 Jun 2007) | 2 lines Fix a variable name in winreg docs. ........ ................
563 lines
11 KiB
Python
563 lines
11 KiB
Python
from pybench import Test
|
|
import sys
|
|
|
|
class ConcatStrings(Test):
|
|
|
|
version = 2.0
|
|
operations = 10 * 5
|
|
rounds = 100000
|
|
|
|
def test(self):
|
|
|
|
# Make sure the strings are *not* interned
|
|
s = ''.join(map(str,range(100)))
|
|
t = ''.join(map(str,range(1,101)))
|
|
|
|
for i in range(self.rounds):
|
|
t + s
|
|
t + s
|
|
t + s
|
|
t + s
|
|
t + s
|
|
|
|
t + s
|
|
t + s
|
|
t + s
|
|
t + s
|
|
t + s
|
|
|
|
t + s
|
|
t + s
|
|
t + s
|
|
t + s
|
|
t + s
|
|
|
|
t + s
|
|
t + s
|
|
t + s
|
|
t + s
|
|
t + s
|
|
|
|
t + s
|
|
t + s
|
|
t + s
|
|
t + s
|
|
t + s
|
|
|
|
t + s
|
|
t + s
|
|
t + s
|
|
t + s
|
|
t + s
|
|
|
|
t + s
|
|
t + s
|
|
t + s
|
|
t + s
|
|
t + s
|
|
|
|
t + s
|
|
t + s
|
|
t + s
|
|
t + s
|
|
t + s
|
|
|
|
t + s
|
|
t + s
|
|
t + s
|
|
t + s
|
|
t + s
|
|
|
|
t + s
|
|
t + s
|
|
t + s
|
|
t + s
|
|
t + s
|
|
|
|
def calibrate(self):
|
|
|
|
s = ''.join(map(str,range(100)))
|
|
t = ''.join(map(str,range(1,101)))
|
|
|
|
for i in range(self.rounds):
|
|
pass
|
|
|
|
|
|
class CompareStrings(Test):
|
|
|
|
version = 2.0
|
|
operations = 10 * 5
|
|
rounds = 200000
|
|
|
|
def test(self):
|
|
|
|
# Make sure the strings are *not* interned
|
|
s = ''.join(map(str,range(10)))
|
|
t = ''.join(map(str,range(10))) + "abc"
|
|
|
|
for i in range(self.rounds):
|
|
t < s
|
|
t > s
|
|
t == s
|
|
t > s
|
|
t < s
|
|
|
|
t < s
|
|
t > s
|
|
t == s
|
|
t > s
|
|
t < s
|
|
|
|
t < s
|
|
t > s
|
|
t == s
|
|
t > s
|
|
t < s
|
|
|
|
t < s
|
|
t > s
|
|
t == s
|
|
t > s
|
|
t < s
|
|
|
|
t < s
|
|
t > s
|
|
t == s
|
|
t > s
|
|
t < s
|
|
|
|
t < s
|
|
t > s
|
|
t == s
|
|
t > s
|
|
t < s
|
|
|
|
t < s
|
|
t > s
|
|
t == s
|
|
t > s
|
|
t < s
|
|
|
|
t < s
|
|
t > s
|
|
t == s
|
|
t > s
|
|
t < s
|
|
|
|
t < s
|
|
t > s
|
|
t == s
|
|
t > s
|
|
t < s
|
|
|
|
t < s
|
|
t > s
|
|
t == s
|
|
t > s
|
|
t < s
|
|
|
|
def calibrate(self):
|
|
|
|
s = ''.join(map(str,range(10)))
|
|
t = ''.join(map(str,range(10))) + "abc"
|
|
|
|
for i in range(self.rounds):
|
|
pass
|
|
|
|
|
|
class CompareInternedStrings(Test):
|
|
|
|
version = 2.0
|
|
operations = 10 * 5
|
|
rounds = 300000
|
|
|
|
def test(self):
|
|
|
|
# Make sure the strings *are* interned
|
|
s = sys.intern(''.join(map(str,range(10))))
|
|
t = s
|
|
|
|
for i in range(self.rounds):
|
|
t == s
|
|
t == s
|
|
t >= s
|
|
t > s
|
|
t < s
|
|
|
|
t == s
|
|
t == s
|
|
t >= s
|
|
t > s
|
|
t < s
|
|
|
|
t == s
|
|
t == s
|
|
t >= s
|
|
t > s
|
|
t < s
|
|
|
|
t == s
|
|
t == s
|
|
t >= s
|
|
t > s
|
|
t < s
|
|
|
|
t == s
|
|
t == s
|
|
t >= s
|
|
t > s
|
|
t < s
|
|
|
|
t == s
|
|
t == s
|
|
t >= s
|
|
t > s
|
|
t < s
|
|
|
|
t == s
|
|
t == s
|
|
t >= s
|
|
t > s
|
|
t < s
|
|
|
|
t == s
|
|
t == s
|
|
t >= s
|
|
t > s
|
|
t < s
|
|
|
|
t == s
|
|
t == s
|
|
t >= s
|
|
t > s
|
|
t < s
|
|
|
|
t == s
|
|
t == s
|
|
t >= s
|
|
t > s
|
|
t < s
|
|
|
|
def calibrate(self):
|
|
|
|
s = sys.intern(''.join(map(str,range(10))))
|
|
t = s
|
|
|
|
for i in range(self.rounds):
|
|
pass
|
|
|
|
|
|
class CreateStringsWithConcat(Test):
|
|
|
|
version = 2.0
|
|
operations = 10 * 5
|
|
rounds = 200000
|
|
|
|
def test(self):
|
|
|
|
for i in range(self.rounds):
|
|
s = 'om'
|
|
s = s + 'xbx'
|
|
s = s + 'xcx'
|
|
s = s + 'xdx'
|
|
s = s + 'xex'
|
|
|
|
s = s + 'xax'
|
|
s = s + 'xbx'
|
|
s = s + 'xcx'
|
|
s = s + 'xdx'
|
|
s = s + 'xex'
|
|
|
|
s = s + 'xax'
|
|
s = s + 'xbx'
|
|
s = s + 'xcx'
|
|
s = s + 'xdx'
|
|
s = s + 'xex'
|
|
|
|
s = s + 'xax'
|
|
s = s + 'xbx'
|
|
s = s + 'xcx'
|
|
s = s + 'xdx'
|
|
s = s + 'xex'
|
|
|
|
s = s + 'xax'
|
|
s = s + 'xbx'
|
|
s = s + 'xcx'
|
|
s = s + 'xdx'
|
|
s = s + 'xex'
|
|
|
|
s = s + 'xax'
|
|
s = s + 'xbx'
|
|
s = s + 'xcx'
|
|
s = s + 'xdx'
|
|
s = s + 'xex'
|
|
|
|
s = s + 'xax'
|
|
s = s + 'xbx'
|
|
s = s + 'xcx'
|
|
s = s + 'xdx'
|
|
s = s + 'xex'
|
|
|
|
s = s + 'xax'
|
|
s = s + 'xbx'
|
|
s = s + 'xcx'
|
|
s = s + 'xdx'
|
|
s = s + 'xex'
|
|
|
|
s = s + 'xax'
|
|
s = s + 'xbx'
|
|
s = s + 'xcx'
|
|
s = s + 'xdx'
|
|
s = s + 'xex'
|
|
|
|
s = s + 'xax'
|
|
s = s + 'xbx'
|
|
s = s + 'xcx'
|
|
s = s + 'xdx'
|
|
s = s + 'xex'
|
|
|
|
def calibrate(self):
|
|
|
|
for i in range(self.rounds):
|
|
pass
|
|
|
|
|
|
class StringSlicing(Test):
|
|
|
|
version = 2.0
|
|
operations = 5 * 7
|
|
rounds = 160000
|
|
|
|
def test(self):
|
|
|
|
s = ''.join(map(str,range(100)))
|
|
|
|
for i in range(self.rounds):
|
|
|
|
s[50:]
|
|
s[:25]
|
|
s[50:55]
|
|
s[-1:]
|
|
s[:1]
|
|
s[2:]
|
|
s[11:-11]
|
|
|
|
s[50:]
|
|
s[:25]
|
|
s[50:55]
|
|
s[-1:]
|
|
s[:1]
|
|
s[2:]
|
|
s[11:-11]
|
|
|
|
s[50:]
|
|
s[:25]
|
|
s[50:55]
|
|
s[-1:]
|
|
s[:1]
|
|
s[2:]
|
|
s[11:-11]
|
|
|
|
s[50:]
|
|
s[:25]
|
|
s[50:55]
|
|
s[-1:]
|
|
s[:1]
|
|
s[2:]
|
|
s[11:-11]
|
|
|
|
s[50:]
|
|
s[:25]
|
|
s[50:55]
|
|
s[-1:]
|
|
s[:1]
|
|
s[2:]
|
|
s[11:-11]
|
|
|
|
def calibrate(self):
|
|
|
|
s = ''.join(map(str,range(100)))
|
|
|
|
for i in range(self.rounds):
|
|
pass
|
|
|
|
### String methods
|
|
|
|
if hasattr('', 'lower'):
|
|
|
|
class StringMappings(Test):
|
|
|
|
version = 2.0
|
|
operations = 3 * (5 + 4 + 2 + 1)
|
|
rounds = 70000
|
|
|
|
def test(self):
|
|
|
|
s = ''.join(map(chr,range(20)))
|
|
t = ''.join(map(chr,range(50)))
|
|
u = ''.join(map(chr,range(100)))
|
|
v = ''.join(map(chr,range(256)))
|
|
|
|
for i in range(self.rounds):
|
|
|
|
s.lower()
|
|
s.lower()
|
|
s.lower()
|
|
s.lower()
|
|
s.lower()
|
|
|
|
s.upper()
|
|
s.upper()
|
|
s.upper()
|
|
s.upper()
|
|
s.upper()
|
|
|
|
s.title()
|
|
s.title()
|
|
s.title()
|
|
s.title()
|
|
s.title()
|
|
|
|
t.lower()
|
|
t.lower()
|
|
t.lower()
|
|
t.lower()
|
|
|
|
t.upper()
|
|
t.upper()
|
|
t.upper()
|
|
t.upper()
|
|
|
|
t.title()
|
|
t.title()
|
|
t.title()
|
|
t.title()
|
|
|
|
u.lower()
|
|
u.lower()
|
|
|
|
u.upper()
|
|
u.upper()
|
|
|
|
u.title()
|
|
u.title()
|
|
|
|
v.lower()
|
|
|
|
v.upper()
|
|
|
|
v.title()
|
|
|
|
def calibrate(self):
|
|
|
|
s = ''.join(map(chr,range(20)))
|
|
t = ''.join(map(chr,range(50)))
|
|
u = ''.join(map(chr,range(100)))
|
|
v = ''.join(map(chr,range(256)))
|
|
|
|
for i in range(self.rounds):
|
|
pass
|
|
|
|
class StringPredicates(Test):
|
|
|
|
version = 2.0
|
|
operations = 10 * 7
|
|
rounds = 100000
|
|
|
|
def test(self):
|
|
|
|
data = ('abc', '123', ' ', '\xe4\xf6\xfc', '\xdf'*10)
|
|
len_data = len(data)
|
|
|
|
for i in range(self.rounds):
|
|
s = data[i % len_data]
|
|
|
|
s.isalnum()
|
|
s.isalpha()
|
|
s.isdigit()
|
|
s.islower()
|
|
s.isspace()
|
|
s.istitle()
|
|
s.isupper()
|
|
|
|
s.isalnum()
|
|
s.isalpha()
|
|
s.isdigit()
|
|
s.islower()
|
|
s.isspace()
|
|
s.istitle()
|
|
s.isupper()
|
|
|
|
s.isalnum()
|
|
s.isalpha()
|
|
s.isdigit()
|
|
s.islower()
|
|
s.isspace()
|
|
s.istitle()
|
|
s.isupper()
|
|
|
|
s.isalnum()
|
|
s.isalpha()
|
|
s.isdigit()
|
|
s.islower()
|
|
s.isspace()
|
|
s.istitle()
|
|
s.isupper()
|
|
|
|
s.isalnum()
|
|
s.isalpha()
|
|
s.isdigit()
|
|
s.islower()
|
|
s.isspace()
|
|
s.istitle()
|
|
s.isupper()
|
|
|
|
s.isalnum()
|
|
s.isalpha()
|
|
s.isdigit()
|
|
s.islower()
|
|
s.isspace()
|
|
s.istitle()
|
|
s.isupper()
|
|
|
|
s.isalnum()
|
|
s.isalpha()
|
|
s.isdigit()
|
|
s.islower()
|
|
s.isspace()
|
|
s.istitle()
|
|
s.isupper()
|
|
|
|
s.isalnum()
|
|
s.isalpha()
|
|
s.isdigit()
|
|
s.islower()
|
|
s.isspace()
|
|
s.istitle()
|
|
s.isupper()
|
|
|
|
s.isalnum()
|
|
s.isalpha()
|
|
s.isdigit()
|
|
s.islower()
|
|
s.isspace()
|
|
s.istitle()
|
|
s.isupper()
|
|
|
|
s.isalnum()
|
|
s.isalpha()
|
|
s.isdigit()
|
|
s.islower()
|
|
s.isspace()
|
|
s.istitle()
|
|
s.isupper()
|
|
|
|
def calibrate(self):
|
|
|
|
data = ('abc', '123', ' ', '\u1234\u2345\u3456', '\uFFFF'*10)
|
|
data = ('abc', '123', ' ', '\xe4\xf6\xfc', '\xdf'*10)
|
|
len_data = len(data)
|
|
|
|
for i in range(self.rounds):
|
|
s = data[i % len_data]
|