aboutsummaryrefslogtreecommitdiff
blob: ed2307db8d93a9588e7ecf37919cc59a2ecac5d2 (plain)
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)