aboutsummaryrefslogtreecommitdiff
path: root/pypy/tool
diff options
context:
space:
mode:
authorCarl Friedrich Bolz-Tereick <cfbolz@gmx.de>2020-03-02 19:21:42 +0100
committerCarl Friedrich Bolz-Tereick <cfbolz@gmx.de>2020-03-02 19:21:42 +0100
commitae7c1beefdb9cdb19e1c54355bb4ea2c120f94ac (patch)
tree5ea95d6fac6bf674833430b9399cf88c24b8a5ce /pypy/tool
parentAdded support for spaceconfig in new style applevel tests (diff)
downloadpypy-ae7c1beefdb9cdb19e1c54355bb4ea2c120f94ac.tar.gz
pypy-ae7c1beefdb9cdb19e1c54355bb4ea2c120f94ac.tar.bz2
pypy-ae7c1beefdb9cdb19e1c54355bb4ea2c120f94ac.zip
move those utf8 benchmarks to more sensible places
Diffstat (limited to 'pypy/tool')
-rw-r--r--pypy/tool/bench/unicode-bench.py77
1 files changed, 77 insertions, 0 deletions
diff --git a/pypy/tool/bench/unicode-bench.py b/pypy/tool/bench/unicode-bench.py
new file mode 100644
index 0000000000..ed2307db8d
--- /dev/null
+++ b/pypy/tool/bench/unicode-bench.py
@@ -0,0 +1,77 @@
+
+import time
+
+LGT = 100
+
+unicodes = [unicode("u" * LGT + str(i)) for i in range(100)]
+non_ascii_unicodes = [u"u" * LGT + unicode(i) + u"å" for i in range(100)]
+
+long_string = u" " * 1000000
+unicodes = [long_string] * 100
+
+RANGE = 250000000 // LGT
+
+def upper(main_l):
+ l = [None] * 1000
+ for i in xrange(RANGE):
+ l[i % 1000] = main_l[i % 100].upper()
+
+def lower(main_l):
+ l = [None]
+ for i in xrange(RANGE):
+ l[0] = main_l[i % 100].lower()
+
+def islower(main_l):
+ l = [None]
+ for i in xrange(RANGE * 3):
+ l[0] = main_l[i % 100].islower()
+
+def title(main_l):
+ l = [None]
+ for i in xrange(RANGE):
+ l[0] = main_l[i % 100].title()
+
+def add(main_l):
+ l = [None]
+ for i in xrange(RANGE):
+ l[0] = main_l[i % 100] + u"foo"
+
+def find(main_l):
+ l = [None]
+ for i in xrange(RANGE):
+ l[0] = main_l[i % 100].find(u"foo")
+
+def split(main_l):
+ l = [None]
+ for i in xrange(RANGE):
+ l[0] = main_l[i % 100].split()
+
+def splitlines(main_l):
+ l = [None]
+ for i in xrange(RANGE):
+ l[0] = main_l[i % 100].splitlines()
+
+def iter(main_l):
+ l = [None]
+ for i in xrange(RANGE // 10000):
+ for elem in main_l[i % 100]:
+ l[0] = elem
+
+def indexing(main_l):
+ l = [None]
+ for i in xrange(RANGE * 10):
+ l[0] = main_l[i % 100][13]
+
+def isspace(main_l):
+ l = [None]
+ for i in xrange(RANGE // 10000):
+ l[0] = main_l[i % 100].isspace()
+
+for func in [isspace]:#, lower, isupper, islower]:
+ t0 = time.time()
+ func(unicodes)
+ t1 = time.time()
+ print "ascii %s %.2f" % (func.__name__, t1 - t0)
+ #func(non_ascii_unicodes)
+ #t2 = time.time()
+ #print "non-ascii %s %.2f" % (func.__name__, t2 - t1)