1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 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)
|