diff options
Diffstat (limited to 'Tools/pybench/Strings.py')
| -rw-r--r-- | Tools/pybench/Strings.py | 76 |
1 files changed, 41 insertions, 35 deletions
diff --git a/Tools/pybench/Strings.py b/Tools/pybench/Strings.py index 3be8b35..8e3d702 100644 --- a/Tools/pybench/Strings.py +++ b/Tools/pybench/Strings.py @@ -1,5 +1,11 @@ from pybench import Test -from string import join +import sys + +try: + intern +except NameError: + intern = sys.intern + class ConcatStrings(Test): @@ -10,10 +16,10 @@ class ConcatStrings(Test): def test(self): # Make sure the strings are *not* interned - s = join(map(str,range(100))) - t = join(map(str,range(1,101))) + s = ''.join(map(str,range(100))) + t = ''.join(map(str,range(1,101))) - for i in xrange(self.rounds): + for i in range(self.rounds): t + s t + s t + s @@ -76,10 +82,10 @@ class ConcatStrings(Test): def calibrate(self): - s = join(map(str,range(100))) - t = join(map(str,range(1,101))) + s = ''.join(map(str,range(100))) + t = ''.join(map(str,range(1,101))) - for i in xrange(self.rounds): + for i in range(self.rounds): pass @@ -92,10 +98,10 @@ class CompareStrings(Test): def test(self): # Make sure the strings are *not* interned - s = join(map(str,range(10))) - t = join(map(str,range(10))) + "abc" + s = ''.join(map(str,range(10))) + t = ''.join(map(str,range(10))) + "abc" - for i in xrange(self.rounds): + for i in range(self.rounds): t < s t > s t == s @@ -158,10 +164,10 @@ class CompareStrings(Test): def calibrate(self): - s = join(map(str,range(10))) - t = join(map(str,range(10))) + "abc" + s = ''.join(map(str,range(10))) + t = ''.join(map(str,range(10))) + "abc" - for i in xrange(self.rounds): + for i in range(self.rounds): pass @@ -174,10 +180,10 @@ class CompareInternedStrings(Test): def test(self): # Make sure the strings *are* interned - s = intern(join(map(str,range(10)))) + s = intern(''.join(map(str,range(10)))) t = s - for i in xrange(self.rounds): + for i in range(self.rounds): t == s t == s t >= s @@ -240,10 +246,10 @@ class CompareInternedStrings(Test): def calibrate(self): - s = intern(join(map(str,range(10)))) + s = intern(''.join(map(str,range(10)))) t = s - for i in xrange(self.rounds): + for i in range(self.rounds): pass @@ -255,7 +261,7 @@ class CreateStringsWithConcat(Test): def test(self): - for i in xrange(self.rounds): + for i in range(self.rounds): s = 'om' s = s + 'xbx' s = s + 'xcx' @@ -318,7 +324,7 @@ class CreateStringsWithConcat(Test): def calibrate(self): - for i in xrange(self.rounds): + for i in range(self.rounds): pass @@ -330,9 +336,9 @@ class StringSlicing(Test): def test(self): - s = join(map(str,range(100))) + s = ''.join(map(str,range(100))) - for i in xrange(self.rounds): + for i in range(self.rounds): s[50:] s[:25] @@ -376,9 +382,9 @@ class StringSlicing(Test): def calibrate(self): - s = join(map(str,range(100))) + s = ''.join(map(str,range(100))) - for i in xrange(self.rounds): + for i in range(self.rounds): pass ### String methods @@ -393,12 +399,12 @@ if hasattr('', 'lower'): 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)),'') + 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 xrange(self.rounds): + for i in range(self.rounds): s.lower() s.lower() @@ -450,12 +456,12 @@ if hasattr('', 'lower'): 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)),'') + 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 xrange(self.rounds): + for i in range(self.rounds): pass class StringPredicates(Test): @@ -469,7 +475,7 @@ if hasattr('', 'lower'): data = ('abc', '123', ' ', '\xe4\xf6\xfc', '\xdf'*10) len_data = len(data) - for i in xrange(self.rounds): + for i in range(self.rounds): s = data[i % len_data] s.isalnum() @@ -558,5 +564,5 @@ if hasattr('', 'lower'): data = ('abc', '123', ' ', '\xe4\xf6\xfc', '\xdf'*10) len_data = len(data) - for i in xrange(self.rounds): + for i in range(self.rounds): s = data[i % len_data] |
